From: felix j. <fel...@ho...> - 2025-05-08 19:43:03
|
I'm attempting to use the 'Versioning' package and am running into, what appears to be, locking issues. In eXide, the very first save of an XML doc errors out and shows this in a popup: 'void org.exist.dom.persistent.DocumentImpl.(org.exist.storage.BrokerPool, org.exist.collections.Collection, org.exist.xmldb.XmldbURI)' eXist then becomes unresponsive and requires a restart. I can see in Monex, a bunch of 'waiting for' -> 'COLLECTION ( WRITE_LOCK )' under 'Waiting Threads.' Dunno if it's related, but under 'Active Threads,' I see a stacktrace: java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method) java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedLongSynchronizer.acquire(AbstractQueuedLongSynchronizer.java:348) java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedLongSynchronizer.acquireShared(AbstractQueuedLongSynchronizer.java:659) uk.ac.ic.doc.slurp.multilock.MultiLock.intentionReadLock(MultiLock.java:501) org.exist.storage.lock.LockManager.lock(LockManager.java:293) org.exist.storage.lock.LockManager.acquirePathReadLock(LockManager.java:267) org.exist.storage.lock.LockManager.acquireCollectionReadLock(LockManager.java:219) org.exist.storage.NativeBroker.readLockCollection(NativeBroker.java:1837) org.exist.storage.NativeBroker.openCollection(NativeBroker.java:869) ... After killing the process and restarting, if I try to save a doc in eXide, the popup says: 'org.exist.storage.lock.Lock org.exist.collections.Collection.getLock()' and Monex shows all of the stuff mentioned above. exist.log, doesn't show any errors. Just: DEBUG (TemporaryFileManager.java [returnTemporaryFile]:135) - Deleted temporary file: /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/exist-db-temp-file-manager-6286306081099162350/exist-db-temp-13573353218066578415.tmp DEBUG (Txn.java [close]:211) - Resetting transaction state for next use. DEBUG (MutableCollection.java [checkPermissionsForAddDocument]:1697) - Found old doc 3074 DEBUG (Txn.java [close]:190) - Transaction was not committed or aborted, auto aborting! WARN (TransactionManager.java [close]:421) - Transaction was not committed or aborted, auto aborting! DEBUG (TransactionManager.java [doAbortTransaction]:400) - Aborted transaction: 891 Nothing in the two logs associated with locking. (I did modify log4j2.xml to also log for the versioning package, but didn't see anything of relevance) These are both new instances of eXist. (5.5.1 and 6.4.0). The file is only opened in a single tab in eXide, so there shouldn't be an issue with multiple users accessing the same file. Any ideas? Is this possibly a bug with the package? (side note, installing the versioning package directly doesn't seem to work properly. After installing it, regardless of restart, I kept getting missing-class errors for VersioningModule and VersioningFilter. I had to copy the jars over to the lib folder, update startup.xml to include the dependencies, and add the module to conf.xml) |