David Robison wrote:
Can you tell me a little more about the conditions that caused the dead lock? We are experiencing a problem that may be related (although it may be just my wacky code). Any additional information would be helpful.
This happens when:

1. No fail safe client connection (pubSessionId < 0) (Xavier, is this correct?)
2. Client is reconnecting
3. At the same time xmlBlaster's callback ping thread detects the lost client and wants to clean up

regards
Marcel


David Robison

    ------------------------------------------------------------------------
    *From:* Marcel Ruff [mailto:[EMAIL PROTECTED]
    *To:* xmlblaster@server.xmlBlaster.org
    *Sent:* Wed, 26 Sep 2007 07:03:15 -0400
    *Subject:* Re: [xmlblaster] dead lock

    Hi Xavier,

    the dead lock is now fixed, the code is available with svn.

    thanks for reporting,
    Marcel


    Xavier Roques wrote:
    > Hi,
    >
    > I'm using Xmlblaster 1.6.
    >
    > I restarted, some connected clients and unfortunately one of my
    client
    > never connects back :(
    >
    > Even if I restart several times this client, it never successes to
    > connect.
    >
    > That's why I dumped the threads' stack on the server side and I
    found
    > the following dead lock (see below)
    >
    > Is there a way to avoid it ?
    >
    > Thanks,
    >
    > Xavier.
    >
    >
    > "XmlBlaster.ssl_socket.SSL.tcpListener-alouettebench17-agent":
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.util.dispatch.DispatchManager.getConnectionStatusListener
    > s(DispatchManager.java:206)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | - waiting to lock
    > <0xdb74d9c0> (a org.xmlBlaster.util.dispatch.DispatchManager)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.util.dispatch.DispatchManager.toAlive(DispatchManager.jav
    > a:293)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | - locked <0xdb7a0930> (a
    > java.lang.Object)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.util.dispatch.DispatchConnectionsHandler.updateState(Disp
    > atchConnectionsHandler.java:332)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | - locked <0xdb7a0f28> (a
    > java.util.ArrayList)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.util.dispatch.DispatchConnectionsHandler.toAlive(Dispatch
    > ConnectionsHandler.java:302)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.util.dispatch.DispatchConnection.handleTransition(Dispatc
    > hConnection.java:575)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | - locked <0xdb7b2838> (a
    > org.xmlBlaster.engine.dispatch.CbDispatchConnection)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.util.dispatch.DispatchConnection.initialize(DispatchConne
    > ction.java:132)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.util.dispatch.DispatchConnectionsHandler.initialize(Dispa
    > tchConnectionsHandler.java:179)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | - locked <0xdb7a0f28> (a
    > java.util.ArrayList)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.util.dispatch.DispatchManager.updateProperty(DispatchMana
    > ger.java:160)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.authentication.SessionInfo.updateConnectQos(SessionInfo.j
    > ava:513)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.authentication.Authenticate.connect(Authenticate.java:276
    > )
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.authentication.AuthenticateProtector.connect(Authenticate
    > Protector.java:74)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.authentication.AuthenticateProtector.connect(Authenticate
    > Protector.java:62)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.protocol.socket.HandleClient.handleMessage(HandleClient.j
    > ava:266)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.protocol.socket.HandleClient$1.run(HandleClient.java:379)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker
    > .runTask(ThreadPoolExecutor.java:665)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker
    > .run(ThreadPoolExecutor.java:690)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    > java.lang.Thread.run(Thread.java:619)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | "XmlBlaster.PingTimer":
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.util.dispatch.DispatchConnectionsHandler.shutdown(Dispatc
    > hConnectionsHandler.java:486)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | - waiting to lock
    > <0xdb7a0f28> (a java.util.ArrayList)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.util.dispatch.DispatchManager.shutdown(DispatchManager.ja
    > va:954)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | - locked <0xdb74d9c0> (a
    > org.xmlBlaster.util.dispatch.DispatchManager)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.util.dispatch.DispatchManager.givingUpDelivery(DispatchMa
    > nager.java:364)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.util.dispatch.DispatchManager.toDead(DispatchManager.java
    > :356)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.util.dispatch.DispatchConnectionsHandler.updateState(Disp
    > atchConnectionsHandler.java:348)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.util.dispatch.DispatchConnectionsHandler.toDead(DispatchC
    > onnectionsHandler.java:315)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.util.dispatch.DispatchConnection.handleTransition(Dispatc
    > hConnection.java:632)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.util.dispatch.DispatchConnection.ping(DispatchConnection.
    > java:359)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    >
    org.xmlBlaster.util.dispatch.DispatchConnection.timeout(DispatchConnecti
    > on.java:423)
    > INFO | jvm 1 | 2007/09/25 11:31:29 | at
    > org.xmlBlaster.util.Timeout.run(Timeout.java:189)
    >
    >
    >
    >


-- Marcel Ruff
    http://www.xmlBlaster.org



--
Marcel Ruff
http://www.xmlBlaster.org

Reply via email to