Page tree
Skip to end of metadata
Go to start of metadata

If you are experiencing problems with locked nodes on public when trying to publish content you should raise the logging level for publishing. 

Types of issues

WARN  org.apache.jackrabbit.core.lock.LockManagerImpl : Unable to remove session-scoped lock on node ‘2aaf8f48-bff6-4cb7-a468-f8a95be0c68f-5’: 
This session has been closed. See the chained exception for a trace of where the session was closed
INFO  ional.receiver.locking.TransactionalJcrLockManager: 129:1590407834622 Node /travel is locked by transaction. Will retry 10 more times.
INFO  ional.receiver.locking.TransactionalJcrLockManager: 129:1590407834622 Node /travel is locked by transaction. Will retry 9 more times.
INFO  ional.receiver.locking.TransactionalJcrLockManager: 129:1590407834622 Node /travel is locked by transaction. Will retry 8 more times.
INFO  ional.receiver.locking.TransactionalJcrLockManager: 129:1590407834622 Node /travel is locked by transaction. Will retry 7 more times.
INFO  ional.receiver.locking.TransactionalJcrLockManager: 129:1590407834622 Node /travel is locked by transaction. Will retry 6 more times.
INFO  ional.receiver.locking.TransactionalJcrLockManager: 129:1590407834622 Node /travel is locked by transaction. Will retry 5 more times.
INFO  ional.receiver.locking.TransactionalJcrLockManager: 129:1590407834622 Node /travel is locked by transaction. Will retry 4 more times.
INFO  ional.receiver.locking.TransactionalJcrLockManager: 129:1590407834622 Node /travel is locked by transaction. Will retry 3 more times.
INFO  ional.receiver.locking.TransactionalJcrLockManager: 129:1590407834622 Node /travel is locked by transaction. Will retry 2 more times.
INFO  ional.receiver.locking.TransactionalJcrLockManager: 129:1590407834622 Node /travel is locked by transaction. Will retry 1 more times.
ERROR receiver.operation.jcr.AbstractJcrReceiveOperation: Operation not permitted, /travel is locked by unfinished transaction.
info.magnolia.publishing.locking.LockManager$LockException: Operation not permitted, /travel is locked by unfinished transaction.
	at info.magnolia.publishing.transactional.receiver.locking.TransactionalJcrLockManager.applyLock(TransactionalJcrLockManager.java:128) ~[magnolia-publishing-transactional-receiver-1.0.5.jar:?]
	at info.magnolia.publishing.receiver.operation.jcr.AbstractJcrReceiveOperation.preExecute(AbstractJcrReceiveOperation.java:174) ~[magnolia-publishing-receiver-1.2.jar:?]
	at info.magnolia.publishing.receiver.operation.jcr.AbstractJcrReceiveOperation.execute(AbstractJcrReceiveOperation.java:146) [magnolia-publishing-receiver-1.2.jar:?]
	at info.magnolia.publishing.transactional.receiver.operation.jcr.JcrTransactionPublicationOperation.execute(JcrTransactionPublicationOperation.java:87) [magnolia-publishing-transactional-receiver-1.0.5.jar:?]
	at info.magnolia.publishing.dispatcher.AbstractDispatcher.dispatch(AbstractDispatcher.java:105) [magnolia-publishing-core-1.2.jar:?]

Publishing modules

Update your publishing modules

publishing
<dependencies>
    <dependency>
        <groupId>info.magnolia.publishing</groupId>
        <artifactId>magnolia-publishing-core</artifactId>
        <version>1.2.3</version>
    </dependency>
    <dependency>
        <groupId>info.magnolia.publishing</groupId>
        <artifactId>magnolia-publishing-app</artifactId>
        <version>1.2.3</version>
    </dependency>
    <dependency>
        <groupId>info.magnolia.publishing</groupId>
        <artifactId>magnolia-publishing-receiver</artifactId>
        <version>1.2.3</version>
    </dependency>
    <dependency>
        <groupId>info.magnolia.publishing</groupId>
        <artifactId>magnolia-publishing-sender</artifactId>
        <version>1.2.3</version>
    </dependency>
<dependencies>
publishing
<dependencies>
    <dependency>
        <groupId>info.magnolia.publishing</groupId>
        <artifactId>magnolia-publishing-core</artifactId>
        <version>1.1.7</version>
    </dependency>
    <dependency>
        <groupId>info.magnolia.publishing</groupId>
        <artifactId>magnolia-publishing-app</artifactId>
        <version>1.1.7</version>
    </dependency>
    <dependency>
        <groupId>info.magnolia.publishing</groupId>
        <artifactId>magnolia-publishing-receiver</artifactId>
        <version>1.1.7</version>
    </dependency>
    <dependency>
        <groupId>info.magnolia.publishing</groupId>
        <artifactId>magnolia-publishing-sender</artifactId>
        <version>1.1.7</version>
    </dependency>
<dependencies>

Publishing transactional modules

Update your publishing transactional modules to v1.0.7 for both Magnolia 6.2.x and Magnolia 5.7.x

publishing-transactional
<dependencies>
    <dependency>
        <groupId>info.magnolia.publishing</groupId>
        <artifactId>magnolia-publishing-transactional-core</artifactId>
        <version>1.0.7</version>
    </dependency>
    <dependency>
        <groupId>info.magnolia.publishing</groupId>
        <artifactId>magnolia-publishing-transactional-app</artifactId>
        <version>1.0.7</version>
    </dependency>
    <dependency>
        <groupId>info.magnolia.publishing</groupId>
        <artifactId>magnolia-publishing-transactional-receiver</artifactId>
        <version>1.0.7</version>
    </dependency>
    <dependency>
        <groupId>info.magnolia.publishing</groupId>
        <artifactId>magnolia-publishing-transactional-sender</artifactId>
        <version>1.0.7</version>
    </dependency>
<dependencies>

Raise the logging level

In your log4j2 file raise the logging level on the public instances to ALL.
log4j2
<Logger name="info.magnolia.publishing" level="ALL"/>

You can also raise the logging level of publishing in a running instance. Log into your public instance(s) and open the Log Tools app.

Publication IDs

Each time a lock is required for publication the session which created that lock will identify itself in the lockOwner field.

  • rootLock: publication-session-rootLock-session-admin-293
  • nodeLock: publication-session-nodeLock-session-admin-293
  • parentLock: publication-session-parentLock-session-admin-293

Using the lock id we should be able track when and where locks created.

2020-08-31 15:01:48,242 ERROR info.magnolia.publishing.locking.JcrLockManager : 
Cannot acquire lock [owner: publication-session-nodeLock-session-admin-293 expires: infinite lock]

Looking further back in the logs we should be able to find when the node was locked. 

Related tickets

Known Issues

  • JcrLockManager falsely reports node locked

    2020-09-01 19:39:33,979 DEBUG info.magnolia.publishing.locking.JcrLockManager   : session-admin-374 DID lock website:/travel/stories
    2020-09-01 19:39:33,979 DEBUG info.magnolia.publishing.locking.JcrLockManager   : Cannot acquire lock [owner: publishing-session-parentLock-session-admin-374 expires: infinite lock]