On 15/09/2007, Rajith Attapattu <[EMAIL PROTECTED]> 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

Reply via email to