Open immetoo2 opened 4 months ago
The seed command block all commands including touching a new drive;
love.distributedrebirth.bassboon.warp.fault.FaultStreamDelegate: ELOCKED: File is locked
at TraceSignal.JDat-Drives-Command=drives touch(JDatLocalFileSystem:0)
at TraceSignal.JDat-Drives-Exit-Code=1(JDatLocalFileSystem:0)
at TraceSignal.Fault-Section-Chain-Iceberg=love.distributedrebirth.bassboon.warp.fault.FaultStreamDelegateDuckTail(JDatLocalFileSystem:0)
at TraceSignal.EcmaScript-Error-path=/home/willemtsade/.drives/corestore/primary-key(QuackJavaScriptDuckTales:0)
at TraceSignal.Fault-Section-Chain-Message=ELOCKED: File is locked(QuackJavaScriptDuckTales:0)
at TraceSignal.EcmaScript-Error-code=ELOCKED(QuackJavaScriptDuckTales:0)
at love.distributedrebirth.bassboon.warp.fault.FaultStreamDelegate.valueOfDuckTail(FaultStreamDelegate.java:70)
at love.distributedrebirth.bassboon.nx01.jdat.local.JDatLocalFileSystem.executeHyperdrive(JDatLocalFileSystem.java:376)
at love.distributedrebirth.bassboon.nx01.jdat.local.JDatLocalFileSystem.cmdTouch(JDatLocalFileSystem.java:230)
at love.distributedrebirth.bassboon.nx01.jdat.local.JDatLocalFileSystemTest.testUnicode(JDatLocalFileSystemTest.java:96)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Caused by: love.distributedrebirth.bassboon.warp.fault.FaultStreamDelegateDuckTail: ELOCKED: File is locked
at this.createLockError(/home/willemtsade/.nvm/versions/node/v22.1.0/lib/node_modules/drives/node_modules/random-access-file/index.js:249)
at this.onopen(/home/willemtsade/.nvm/versions/node/v22.1.0/lib/node_modules/drives/node_modules/random-access-file/index.js:105)
at FSReqCallback.oncomplete(node:fs:188)
A workaround is having every drive in its own external managed storage path location, but that is counter productive.
@immetoo2 new to drives
/ Holepunch, just testing out and ran in to this.
Can you elaborate on your workaround? I don't know what 'managed storage path' is, and nothing in docs 🤔
The real code solution is the 'inverse of the problem' like;
daemon-summon
+ optional idle param for auto exitdaemon-slaughter
@davetapley All command have an --storage <path> Storage path
option, which can be used to keep
all your drives in separate folders and thus locks, but this does not solve the seed problem.
To sync and seed a drive, a script like this may work;
while [ true ]
do
sleep 2;
echo "run cycle";
drives mirror ...
timeout 24h drives seed ...
done
When seeding a hyper drive, it does a write lock while seeding is read only.
To reproduce, start seeding a drive;
And then every command fails with an write lock;
Having to stop seeding to add a few files, feels really strange.