You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ji...@apache.org on 2004/04/13 18:59:49 UTC
[jira] Created: (JAMES-253) deadlock in mordred connection pool
Message:
A new issue has been created in JIRA.
---------------------------------------------------------------------
View the issue:
http://issues.apache.org/jira/browse/JAMES-253
Here is an overview of the issue:
---------------------------------------------------------------------
Key: JAMES-253
Summary: deadlock in mordred connection pool
Type: Bug
Status: Unassigned
Priority: Major
Project: James
Components:
MailStore & MailRepository
SpoolManager & Processors
Versions:
2.1.3
Assignee:
Reporter: Marcus Labib
Created: Tue, 13 Apr 2004 9:58 AM
Updated: Tue, 13 Apr 2004 9:58 AM
Environment: Linux 2.4.24 - glibc 2.2 - j2sdk 1.4.2
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)
---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[jira] Closed: (JAMES-253) deadlock in mordred connection pool
Posted by ji...@apache.org.
Message:
The following issue has been closed.
---------------------------------------------------------------------
View the issue:
http://issues.apache.org/jira/browse/JAMES-253
Here is an overview of the issue:
---------------------------------------------------------------------
Key: JAMES-253
Summary: deadlock in mordred connection pool
Type: Bug
Status: Closed
Priority: Major
Resolution: FIXED
Project: James
Components:
SpoolManager & Processors
MailStore & MailRepository
Fix Fors:
2.2.0RC1
Versions:
2.1.3
Assignee:
Reporter: Marcus Labib
Created: Tue, 13 Apr 2004 9:58 AM
Updated: Sat, 5 Jun 2004 12:35 PM
Environment: Linux 2.4.24 - glibc 2.2 - j2sdk 1.4.2
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)
---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[jira] Resolved: (JAMES-253) deadlock in mordred connection pool
Posted by ji...@apache.org.
Message:
The following issue has been resolved as FIXED.
Resolver: Noel J. Bergman
Date: Wed, 14 Apr 2004 9:41 AM
Patch applied based upon Marcus Labib's contribution. Enforces synchronized access to the pool. Also added code based upon his patch to first just log overly long-lived connections, and then close them at a later time. Not sure it is needed, but if the code is ever exercised, it should provide some data on "stuck" connections.
It should be noted that mordred is considered deprecated in favor of DBCP.
---------------------------------------------------------------------
View the issue:
http://issues.apache.org/jira/browse/JAMES-253
Here is an overview of the issue:
---------------------------------------------------------------------
Key: JAMES-253
Summary: deadlock in mordred connection pool
Type: Bug
Status: Resolved
Priority: Major
Resolution: FIXED
Project: James
Components:
SpoolManager & Processors
MailStore & MailRepository
Fix Fors:
2.2.0a19
Versions:
2.1.3
Assignee:
Reporter: Marcus Labib
Created: Tue, 13 Apr 2004 9:58 AM
Updated: Wed, 14 Apr 2004 9:41 AM
Environment: Linux 2.4.24 - glibc 2.2 - j2sdk 1.4.2
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)
---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org