maloja
maloja copied to clipboard
Database locked when trying to merge an artist
Hey, i'm running maloja on docker and my host system is running arch x64. Whenever I try and merge two artist entries (in this case, Tyler, The Creator and Tyler The Creator), The following error occurs:
[sqldb] Deleting (7892, 822, 3572)
[sqldb] Deleting (3572, 'Answer', 'answer', None, 2731)
[sqldb] Database Cleanup complete!
Traceback (most recent call last):
File "/venv/lib/python3.12/site-packages/maloja/database/dbcache.py", line 49, in outer_func
return cache[key]
~~~~~^^^^^
KeyError: ('[1359]', '{}', <function connection_provider.<locals>.wrapper at 0x73403e10f560>, None, None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/venv/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1964, in _exec_single_context
self.dialect.do_execute(
File "/venv/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 747, in do_execute
cursor.execute(statement, parameters)
sqlite3.OperationalError: database is locked
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/venv/lib/python3.12/site-packages/maloja/apis/native_v1.py", line 126, in protector
return func(*args,**kwargs)
^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/maloja/apis/native_v1.py", line 903, in merge_artists
result = database.merge_artists(target_id,source_ids)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/maloja/database/__init__.py", line 67, in newfunc
return func(*args,**kwargs)
^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/maloja/database/__init__.py", line 251, in merge_artists
sqldb.merge_artists(target_id,source_ids)
File "/venv/lib/python3.12/site-packages/maloja/database/sqldb.py", line 159, in wrapper
return func(*args,**kwargs)
^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/maloja/database/sqldb.py", line 855, in merge_artists
merge_duplicate_albums(artist_id=target_id, dbconn=dbconn)
File "/venv/lib/python3.12/site-packages/maloja/database/sqldb.py", line 154, in wrapper
return func(*args,**kwargs)
^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/maloja/database/sqldb.py", line 1867, in merge_duplicate_albums
album_identifiers.setdefault(normalize_name(get_album(album_id)['albumtitle']),[]).append(album_id)
^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/maloja/database/dbcache.py", line 51, in outer_func
result = inner_func(*args,**kwargs,dbconn=conn)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/maloja/database/sqldb.py", line 159, in wrapper
return func(*args,**kwargs)
^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/maloja/database/sqldb.py", line 1671, in get_album
result = dbconn.execute(op).all()
^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1414, in execute
return meth(
^^^^^
File "/venv/lib/python3.12/site-packages/sqlalchemy/sql/elements.py", line 489, in _execute_on_connection
return connection._execute_clauseelement(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1638, in _execute_clauseelement
ret = self._execute_context(
^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1842, in _execute_context
return self._exec_single_context(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1983, in _exec_single_context
self._handle_dbapi_exception(
File "/venv/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 2325, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/venv/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1964, in _exec_single_context
self.dialect.do_execute(
File "/venv/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 747, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) database is locked
[SQL: SELECT albums.id, albums.albtitle, albums.albtitle_normalized
FROM albums
WHERE albums.id = ?]
[parameters: (1359,)]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
I tried deleting the DB file and restarting to check if it was something on my end, but after re-importing my scrobbles (from Spotify and Last.fm), the same error occurs when trying to merge those artist entries again.
It's worth noting that this doesn't occur on any other merges, JUST artists
I'm also seeing this issue on version 3.2.4.