Tried posting this once but I don't think it worked becaues captcha
I can create a new database on a Samba share but I can't move an existing database to the Samba share through any method. I'm on macOS, so I've tried both the built in database migration tool and manually copying ~/Library/Hydrus. Nothing worked. If I manually copy ~/Library/Hydrus to a USB drive, I can start Hydrus from that database successfully.
The error and client.log just say "serious error" and dump out a call stack trace. Here is the trace:
2020/09/11 12:28:11: Traceback (most recent call last):
File "Hydrus/hydrus/client/ClientController.py", line 1798, in THREADBootEverything
File "Hydrus/hydrus/client/ClientController.py", line 803, in InitModel
File "Hydrus/hydrus/core/HydrusController.py", line 498, in InitModel
File "Hydrus/hydrus/client/ClientController.py", line 189, in _InitDB
File "Hydrus/hydrus/client/ClientDB.py", line 299, in __init__
File "Hydrus/hydrus/core/HydrusDB.py", line 185, in __init__
File "Hydrus/hydrus/core/HydrusDB.py", line 454, in _InitDB
File "Hydrus/hydrus/core/HydrusDB.py", line 494, in _InitDBCursor
(don't know if code tags work here, never posted on 8kun)
and the offending line:
def _InitDBCursor( self ):
self._CloseDBCursor()
db_path = os.path.join( self._db_dir, self._db_filenames[ 'main' ] )
db_just_created = not os.path.exists( db_path )
self._db = sqlite3.connect( db_path, isolation_level = None, detect_types = sqlite3.PARSE_DECLTYPES )
self._connection_timestamp = HydrusData.GetNow()
self._c = self._db.cursor()
if HG.no_db_temp_files:
self._c.execute( 'PRAGMA temp_store = 2;' ) # use memory for temp store exclusively
self._c.execute( 'ATTACH ":memory:" AS mem;' ) # ERROR HERE
I can't figure out what the problem is. My first thought was some kind of permission problem, but the file permissions are the same whether Hydrus creates a DB on the Samba share or whether I manually copy or use the built in migration to move an existing DB there. The permissions match the ones of a DB on my local machine (rw-rr on files, rwxr–r-xr-x on directories), and they appear as owned by me and I can read/write/delete them no problem. I'm hoping someone with experience with Hydrus internals can at least point me to things to try, because I am lost.