qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Greig" <robert.j.gr...@gmail.com>
Subject Re: [java] Deadlock issue in trunk
Date Sat, 15 Sep 2007 22:50:49 GMT
On 15/09/2007, Rajith Attapattu <rajith77@gmail.com> wrote:

> When I run the latest version of trunk I get a hang on
> org.apache.qpid.test.unit.client.forwardall.CombinedTest
> kill -3 (thread dump) provides information to say there is a deadlock.

This is QPID-600 and has been fixed by Rob on the M2 branch.

> I also noted that all AMQSession.createXXXMessage contains synchronization
> code.
> (in this case the deadlock happens inn AMQSession.createTextMessage trying
> to obtain the failover mutex)

The deadlock occurs because of the order of lock acquisition.

> Do we really need this synchronization code when creating messages? I am not
> really convinced it is needed.
> Can someody explain the reason for that code block?

Hmm, I'm not sure why the mutex is held. I don't think there is any
risk of corruption if a message is created during failover, and the
mutex has been grabbed in there since the file was created in Apache
svn. I am not sure it helps to remove it though, it probably just
pushes the deadlock elsewhere (in the absence of the QPID-600 fix).

RG

Mime
View raw message