From: Joe W. <jo...@gm...> - 2025-05-13 12:43:04
|
Hi Felix, The versioning module does appear to have a number of known issues, listed at https://github.com/eXist-db/xquery-versioning-module/issues, including compatibility issues with eXist 5.2.0. I'd welcome you to review those and see if they match your issue or if yours is new/different. If they match yours, you could add a note listing your eXist version(s) as still affected. If your issue is different, please create a new issue reporting it. It would be great to restore compatibility with the current version of eXist. Joe On Fri, May 9, 2025 at 12:18 PM felix jeneau <fel...@ho...> wrote: > 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) > _______________________________________________ > Exist-open mailing list > Exi...@li... > https://lists.sourceforge.net/lists/listinfo/exist-open > |