ZODB is failing to find a lock file when I run the following code:
from ZODB.DB import DB
from ZODB.FileStorage import FileStorage
import os
mydir = os.path.dirname(__file__)
myfile = 'data.fs'
data_path = os.path.join(mydir, myfile)
storage = FileStorage(data_path)
db = DB(storage)
conn = db.open()
root = conn.root()
Here is the error:
Traceback (most recent call last):
File "C:\Program Files\Python312\Lib\site-packages\zc\lockfile\__init__.py", line 84, in __init__
fp = open(path, 'r+')
^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'c:\\Users\\2025a\\Documents\\Code\\Tamagemon\\archive\\origin\\data.fs.lock'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "c:\Users\2025a\Documents\Code\Tamagemon\archive\origin\create.py", line 10, in <module>
storage = FileStorage(data_path)
^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Python312\Lib\site-packages\ZODB\FileStorage\FileStorage.py", line 254, in __init__
self._lock_file = LockFile(file_name + '.lock')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Python312\Lib\site-packages\zc\lockfile\__init__.py", line 120, in __init__
super().__init__(path)
File "C:\Program Files\Python312\Lib\site-packages\zc\lockfile\__init__.py", line 90, in __init__
fp = open(path, 'a+')
^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'c:\\Users\\2025a\\Documents\\Code\\Tamagemon\\archive\\origin\\data.fs.lock'
Not sure why I would need to, but when I create the file manually, I get this error:
Traceback (most recent call last):
File "c:\Users\2025a\Documents\Code\Tamagemon\archive\origin\create.py", line 9, in <module>
storage = FileStorage(data_path)
^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Python312\Lib\site-packages\ZODB\FileStorage\FileStorage.py", line 254, in __init__
self._lock_file = LockFile(file_name + '.lock')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Python312\Lib\site-packages\zc\lockfile\__init__.py", line 120, in __init__
super().__init__(path)
File "C:\Program Files\Python312\Lib\site-packages\zc\lockfile\__init__.py", line 100, in __init__
self._on_lock()
File "C:\Program Files\Python312\Lib\site-packages\zc\lockfile\__init__.py", line 128, in _on_lock
self._fp.truncate()
OSError: [Errno 9] Bad file descriptor
Does anyone know why this keeps failing?