Re: deadlock between commit and external event

From: Mike Kienenberger (mkienen..laska.net)
Date: Fri Mar 25 2005 - 11:55:09 EST

  • Next message: Orion Fields: "Re: deadlock between commit and external event"

    Orion Fields <ofield..martserv.com> wrote:
    > Yes, I am experiencing the same problem, I believe.
    >
    > The program will run for a few days, and then cayenne refuses to do any
    > database queries/updates. The program will still accept incoming
    requests.
    >
    > I've been unable to get a trace of the deadlocked code on linux. I can
    > use the kill -QUIT/-SIGQUIT while the program is not experiencing
    > problems. As soon as it begins to have problems, I'm unable to use any
    > TERM signals to get a trace. How do you start your program?
    >
    > I've got it registered w/chkconfig, and the program uses the following
    > to start:
    >
    > java -Xms16m -Xmx192m com.smartserv.delivengine.SocketListener >>
    ${SERVER_B
    > ASE}/${prog}.console 2>&1 & echo $! > ${PROC_ID}
    >
    > which basically redirects all output to a console file and the process
    > id to a .pid file so I can test if the server is running.
    >
    > I've also tried stress testing to see if I could get the program to
    > reproduce the problem w/out any success. I can run thousands of queries
    > and it won't freeze... In production, it'll freeze after about 5/6 days
    > and only 800-900 requests.

    I'm not sure if this is the same situation. Do you have an EventBridge
    installed? I suspect that this particular deadlock only occurs with with
    an EventBridge.

    My app is running under Oracle Application Server Java 1.4.2 on linux.

    I now start it with

    -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=13131

    When I have a problem, I use "jdb -attach 13131" followed by

    suspend
    where all
    resume

    to generate a stack trace.
    I haven't tried the SIGQUIT method Chris mentioned.

    Note that the program doesn't freeze with this bug ... it simply causes
    threads requesting a new DataContext or sending events to deadlock.

    -Mike



    This archive was generated by hypermail 2.0.0 : Fri Mar 25 2005 - 11:53:56 EST