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