Uploaded image for project: 'James Server'
  1. James Server
  2. JAMES-253

deadlock in mordred connection pool

    XMLWordPrintableJSON

Details

    Description

      Hi,

      since some time we are experiencing a deadlock in the mordred connection pool. It seems that this deadlock occurs only when sql queries take very long.

      I submitted a patch to the james developer mailing list.

      excerpt from a typical thread dump:

      Found one Java-level deadlock:
      =============================
      "default Worker #4":
      waiting to lock monitor 0x8856f1c (object 0x44b4d568, a org.apache.james.util.mordred.PoolConnEntry),
      which is held by "Thread-3"
      "Thread-3":
      waiting to lock monitor 0x8856ffc (object 0x44b40138, a java.util.Vector),
      which is held by "default Worker #4"

      Java stack information for the threads listed above: ===================================================
      "default Worker #4":
      at
      org.apache.james.util.mordred.PoolConnEntry.lock(PoolConnEntry.java:110)

      • waiting to lock <0x44b4d568> (a
        org.apache.james.util.mordred.PoolConnEntry)
        at org.apache.james.util.mordred.JdbcDataSource.getConnection(JdbcDataSource.ja
        va:178)
      • locked <0x44b40138> (a java.util.Vector)
        at org.apache.james.mailrepository.JDBCSpoolRepository.loadPendingMessages(JDBC
        SpoolRepository.java:281)
      • locked <0x44b5f218> (a java.util.LinkedList)
        at org.apache.james.mailrepository.JDBCSpoolRepository.getNextPendingMessage(JD
        BCSpoolRepository.java:256)
      • locked <0x44b5f218> (a java.util.LinkedList)
        at org.apache.james.mailrepository.JDBCSpoolRepository.accept(JDBCSpoolReposito
        ry.java:154)
        at
        org.apache.james.transport.JamesSpoolManager.run(JamesSpoolManager.java:350)
        at org.apache.avalon.excalibur.thread.impl.ExecutableRunnable.execute(Executabl
        eRunnable.java:47)
        at org.apache.avalon.excalibur.thread.impl.WorkerThread.run(WorkerThread.java:8
        0)
      • locked <0x44ba24b0> (a
        org.apache.avalon.excalibur.thread.impl.WorkerThread)
        "Thread-3":
        at java.util.Vector.removeElement(Vector.java:605)
      • waiting to lock <0x44b40138> (a java.util.Vector)
        at org.apache.james.util.mordred.JdbcDataSource.finalizeEntry(JdbcDataSource.ja
        va:579)
      • locked <0x44b400b0> (a
        org.apache.james.util.mordred.JdbcDataSource)
        at
        org.apache.james.util.mordred.JdbcDataSource.run(JdbcDataSource.java:452)
      • locked <0x44b4d568> (a
        org.apache.james.util.mordred.PoolConnEntry)
        at java.lang.Thread.run(Thread.java:536)

      Attachments

        Activity

          People

            Unassigned Unassigned
            mlabib Marcus Labib
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: