org.apache.openjpa.persistence.OptimisticLockException: Unable to obtain an object lock on "DELETE FROM APP.JAMES_MAIL WHERE EXISTS (SELECT 1 FROM APP.JAMES_MAIL t0 WHERE (t0.MAILBOX_ID = ? AND t0.MAIL_UID = ? AND t0.MAIL_IS_DELETED = ?) AND (t0.MAILBOX_ID = APP.JAMES_MAIL.MAILBOX_ID AND t0.MAIL_UID = APP.JAMES_MAIL.MAIL_UID)) [java.lang.String]". FailedObject: DELETE FROM APP.JAMES_MAIL WHERE EXISTS (SELECT 1 FROM APP.JAMES_MAIL t0 WHERE (t0.MAILBOX_ID = ? AND t0.MAIL_UID = ? AND t0.MAIL_IS_DELETED = ?) AND (t0.MAILBOX_ID = APP.JAMES_MAIL.MAILBOX_ID AND t0.MAIL_UID = APP.JAMES_MAIL.MAIL_UID)) [java.lang.String]

james-server-user | Kohei Nozaki | 2 years ago
tip
Click on the to mark the solution that helps you, Samebug will learn from it.
As a community member, you’ll be rewarded for you help.
  1. 0

    Re: Deadlock on JPAMessageMapper.expungeMarkedForDeletionInMailbox()

    james-server-user | 2 years ago | Eric Charles
    org.apache.openjpa.persistence.OptimisticLockException: Unable to obtain an object lock on "DELETE FROM APP.JAMES_MAIL WHERE EXISTS (SELECT 1 FROM APP.JAMES_MAIL t0 WHERE (t0.MAILBOX_ID = ? AND t0.MAIL_UID = ? AND t0.MAIL_IS_DELETED = ?) AND (t0.MAILBOX_ID = APP.JAMES_MAIL.MAILBOX_ID AND t0.MAIL_UID = APP.JAMES_MAIL.MAIL_UID)) [java.lang.String]". FailedObject: DELETE FROM APP.JAMES_MAIL WHERE EXISTS (SELECT 1 FROM APP.JAMES_MAIL t0 WHERE (t0.MAILBOX_ID = ? AND t0.MAIL_UID = ? AND t0.MAIL_IS_DELETED = ?) AND (t0.MAILBOX_ID = APP.JAMES_MAIL.MAILBOX_ID AND t0.MAIL_UID = APP.JAMES_MAIL.MAIL_UID)) [java.lang.String]
  2. 0

    Re: Deadlock on JPAMessageMapper.expungeMarkedForDeletionInMailbox()

    james-server-user | 2 years ago | Eric Charles
    org.apache.openjpa.persistence.OptimisticLockException: Unable to obtain an object lock on "DELETE FROM APP.JAMES_MAIL WHERE EXISTS (SELECT 1 FROM APP.JAMES_MAIL t0 WHERE (t0.MAILBOX_ID = ? AND t0.MAIL_UID = ? AND t0.MAIL_IS_DELETED = ?) AND (t0.MAILBOX_ID = APP.JAMES_MAIL.MAILBOX_ID AND t0.MAIL_UID = APP.JAMES_MAIL.MAIL_UID)) [java.lang.String]". FailedObject: DELETE FROM APP.JAMES_MAIL WHERE EXISTS (SELECT 1 FROM APP.JAMES_MAIL t0 WHERE (t0.MAILBOX_ID = ? AND t0.MAIL_UID = ? AND t0.MAIL_IS_DELETED = ?) AND (t0.MAILBOX_ID = APP.JAMES_MAIL.MAILBOX_ID AND t0.MAIL_UID = APP.JAMES_MAIL.MAIL_UID)) [java.lang.String]
  3. 0

    Re: Deadlock on JPAMessageMapper.expungeMarkedForDeletionInMailbox()

    james-server-user | 2 years ago | Kohei Nozaki
    org.apache.openjpa.persistence.OptimisticLockException: Unable to obtain an object lock on "DELETE FROM APP.JAMES_MAIL WHERE EXISTS (SELECT 1 FROM APP.JAMES_MAIL t0 WHERE (t0.MAILBOX_ID = ? AND t0.MAIL_UID = ? AND t0.MAIL_IS_DELETED = ?) AND (t0.MAILBOX_ID = APP.JAMES_MAIL.MAILBOX_ID AND t0.MAIL_UID = APP.JAMES_MAIL.MAIL_UID)) [java.lang.String]". FailedObject: DELETE FROM APP.JAMES_MAIL WHERE EXISTS (SELECT 1 FROM APP.JAMES_MAIL t0 WHERE (t0.MAILBOX_ID = ? AND t0.MAIL_UID = ? AND t0.MAIL_IS_DELETED = ?) AND (t0.MAILBOX_ID = APP.JAMES_MAIL.MAILBOX_ID AND t0.MAIL_UID = APP.JAMES_MAIL.MAIL_UID)) [java.lang.String]
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    Deadlock on JPAMessageMapper.expungeMarkedForDeletionInMailbox()

    james-server-user | 2 years ago | Kohei Nozaki
    org.apache.openjpa.persistence.OptimisticLockException: Unable to obtain an object lock on "DELETE FROM APP.JAMES_MAIL WHERE EXISTS (SELECT 1 FROM APP.JAMES_MAIL t0 WHERE (t0.MAILBOX_ID = ? AND t0.MAIL_UID = ? AND t0.MAIL_IS_DELETED = ?) AND (t0.MAILBOX_ID = APP.JAMES_MAIL.MAILBOX_ID AND t0.MAIL_UID = APP.JAMES_MAIL.MAIL_UID)) [java.lang.String]". FailedObject: DELETE FROM APP.JAMES_MAIL WHERE EXISTS (SELECT 1 FROM APP.JAMES_MAIL t0 WHERE (t0.MAILBOX_ID = ? AND t0.MAIL_UID = ? AND t0.MAIL_IS_DELETED = ?) AND (t0.MAILBOX_ID = APP.JAMES_MAIL.MAILBOX_ID AND t0.MAIL_UID = APP.JAMES_MAIL.MAIL_UID)) [java.lang.String]

    Root Cause Analysis

    1. org.apache.openjpa.lib.jdbc.ReportingSQLException

      A lock could not be obtained due to a deadlock, cycle of locks and waiters is: Lock : ROW, JAMES_MAIL, (735,6) Waiting XID : {123722435, U} , APP, DELETE FROM APP.JAMES_MAIL WHERE EXISTS (SELECT 1 FROM APP.JAMES_MAIL t0 WHERE (t0.MAILBOX_ID = ? AND t0.MAIL_UID = ? AND t0.MAIL_IS_DELETED = ?) AND (t0.MAILBOX_ID = APP.JAMES_MAIL.MAILBOX_ID AND t0.MAIL_UID = APP.JAMES_MAIL.MAIL_UID)) Granted XID : {123722454, X} Lock : TABLE, JAMES_MAIL_PROPERTY, Tablelock Waiting XID : {123722454, IX} , APP, INSERT INTO APP.JAMES_MAIL_PROPERTY (PROPERTY_ID, PROPERTY_LINE_NUMBER, PROPERTY_LOCAL_NAME, PROPERTY_NAME_SPACE, PROPERTY_VALUE, MAILBOX_ID, MAIL_UID) VALUES (?, ?, ?, ?, ?, ?, ?) Granted XID : {123722435, X} . The selected victim is XID : 123722435. {prepstmnt 239961255 DELETE FROM APP.JAMES_MAIL WHERE EXISTS (SELECT 1 FROM APP.JAMES_MAIL t0 WHERE (t0.MAILBOX_ID = ? AND t0.MAIL_UID = ? AND t0.MAIL_IS_DELETED = ?) AND (t0.MAILBOX_ID = APP.JAMES_MAIL.MAILBOX_ID AND t0.MAIL_UID = APP.JAMES_MAIL.MAIL_UID))} [code=30000, state=40001]

      at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap()
    2. OpenJPA Aggregate Jar
      QueryImpl.executeUpdate
      1. org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:219)
      2. org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:195)
      3. org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$1000(LoggingConnectionDecorator.java:59)
      4. org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:1134)
      5. org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:272)
      6. org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1765)
      7. org.apache.openjpa.jdbc.kernel.JDBCStoreQuery.executeUpdate(JDBCStoreQuery.java:746)
      8. org.apache.openjpa.jdbc.kernel.JDBCStoreQuery.executeBulkOperation(JDBCStoreQuery.java:577)
      9. org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4940)
      10. org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4918)
      11. org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:136)
      12. org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:78)
      13. org.apache.openjpa.jdbc.kernel.JDBCStoreQuery.executeBulkOperation(JDBCStoreQuery.java:579)
      14. org.apache.openjpa.jdbc.kernel.JDBCStoreQuery.executeDelete(JDBCStoreQuery.java:491)
      15. org.apache.openjpa.kernel.ExpressionStoreQuery$DataStoreExecutor.executeDelete(ExpressionStoreQuery.java:789)
      16. org.apache.openjpa.kernel.QueryImpl.delete(QueryImpl.java:1025)
      17. org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:865)
      18. org.apache.openjpa.kernel.QueryImpl.deleteAll(QueryImpl.java:892)
      19. org.apache.openjpa.kernel.DelegatingQuery.deleteAll(DelegatingQuery.java:574)
      20. org.apache.openjpa.persistence.QueryImpl.executeUpdate(QueryImpl.java:374)
      20 frames
    3. org.apache.james
      JPAMessageMapper.expungeMarkedForDeletionInMailbox
      1. org.apache.james.mailbox.jpa.mail.JPAMessageMapper.deleteDeletedMessagesInMailboxWithUID(JPAMessageMapper.java:378)
      2. org.apache.james.mailbox.jpa.mail.JPAMessageMapper.expungeMarkedForDeletionInMailbox(JPAMessageMapper.java:240)
      2 frames