You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by "Wm.A.Stafford" <st...@marine.rutgers.edu> on 2007/09/05 22:05:34 UTC
Can two Tomcat web apps deadlock each other?
We are deploying a newer version of a web app to run in the same Tomcat
instance (1.4.31) as the existing version. On our development servers,
winXP, if the new version encounters a startup problem the production
app will start and only the new version will fail.
On the production server, which is linux, Tomcat seems to 'hang' on the
first failure encountered when starting the new app and nothing further
happens. Tomcat has to be restarted after deleting the new app when it
enters this state. In the localhost log the last log entry is the
exception logged from the new app and there is no further logging.
Since we have been doing some database changes the usual error that
causes this is Jakarta DBCP connection failure but we have also seen it
for a missing class file. So I don't think the error per se is at the
root of the problem.
To me this looks like a deadlock. Is it possible for one Tomcat web
application to deadlock with another?
An obvious difference is windows vs linux servers. Could there be some
config issue for Tomcat on linux that would lead to this behavior?
We are completely stumped by this, any ideas or suggestions would be
appreciated.
-=bill
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: Can two Tomcat web apps deadlock each other?
Posted by "Wm.A.Stafford" <st...@marine.rutgers.edu>.
Peter,
Thanks for replying. I don't think server load is a factor but I
will look into it. What makes me think that load is probably not the
cause is that when there are no startup errors everything starts and
runs as normal in the normal amount of time. The problem occurs when
one app fails during startup. For unknown reasons Tomcat either does
not get notified of the failure and is left some sort of waiting state
or Tomcat gets hung trying to shutdown the failed app.
Thanks again for replying,
-=beeky
Peter Crowther wrote:
>> From: Wm.A.Stafford [mailto:stafford@marine.rutgers.edu]
>> Does
>> the fact that this Tomcat behavior does not occur on the
>> windows-based
>> development server offer any clue as to what may be happening on the
>> linux server when Tomcat hangs?
>>
>
> I'm going to take a guess: server load. How heavily do you stress-test
> your webapp on the development server? What with? How many concurrent
> requests?
>
> - Peter
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
RE: Can two Tomcat web apps deadlock each other?
Posted by Peter Crowther <Pe...@melandra.com>.
> From: Wm.A.Stafford [mailto:stafford@marine.rutgers.edu]
> Does
> the fact that this Tomcat behavior does not occur on the
> windows-based
> development server offer any clue as to what may be happening on the
> linux server when Tomcat hangs?
I'm going to take a guess: server load. How heavily do you stress-test
your webapp on the development server? What with? How many concurrent
requests?
- Peter
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: Can two Tomcat web apps deadlock each other?
Posted by "Wm.A.Stafford" <st...@marine.rutgers.edu>.
Alexey,
Thanks for taking the time to reply. I'll try all your suggestions
but I wanted to investigate the windows vs linux possibilities. Does
the fact that this Tomcat behavior does not occur on the windows-based
development server offer any clue as to what may be happening on the
linux server when Tomcat hangs?
Thanks again,
-=bill
Alexey Solofnenko wrote:
> There can be a simple problem with locking - see
> http://tomcat.apache.org/faq/windows.html#lock . On Linux the files
> are usually not locked, so you can get "class not found exception"
> when a jar file is replaced with a new one.
>
> Ask administrators to get the stack trace (and check if CPU is at 100%
> or not - maybe it is not a deadlock). Otherwise you can look for a
> problem for a very long time.
>
> You can also add try/catch with finite number of retries around
> connection code. Please also check that your application shuts down
> cleanly - no exceptions are thrown during shutdown (but they should be
> logged) and preferably there are no finally() methods.
>
> Wm.A.Stafford wrote:
>> Thanks Alexey. Unfortunately, the server in question is not ours and
>> we do not even have log in on it, so any kind of sane analysis is
>> probably out of the question.
>> All we can do is try deploying another version with changes that will
>> either fix the problem (we hope) or yield some more information about
>> what is going on.
>>
>>
>> -=bill
>>
>> Alexey Solofnenko wrote:
>>> Everything is possible, but unlikely. Please try running server
>>> stack trace from
>>> http://tmitevski.users.mcs2.netarray.com/stacktrace/app/launch.jnlp
>>> to get a thread dump. It will show the list of threads and what
>>> locks they have acquired and what locks they are waiting for.
>>>
>>> - Alexey.
>>>
>>> Wm.A.Stafford wrote:
>>>> We are deploying a newer version of a web app to run in the same
>>>> Tomcat instance (1.4.31) as the existing version. On our
>>>> development servers, winXP, if the new version encounters a
>>>> startup problem the production app will start and only the new
>>>> version will fail.
>>>>
>>>> On the production server, which is linux, Tomcat seems to 'hang' on
>>>> the first failure encountered when starting the new app and nothing
>>>> further happens. Tomcat has to be restarted after deleting the new
>>>> app when it enters this state. In the localhost log the last log
>>>> entry is the exception logged from the new app and there is no
>>>> further logging. Since we have been doing some database changes
>>>> the usual error that causes this is Jakarta DBCP connection failure
>>>> but we have also seen it for a missing class file. So I don't
>>>> think the error per se is at the root of the problem.
>>>>
>>>> To me this looks like a deadlock. Is it possible for one Tomcat
>>>> web application to deadlock with another? An obvious difference is
>>>> windows vs linux servers. Could there be some config issue for
>>>> Tomcat on linux that would lead to this behavior?
>>>>
>>>> We are completely stumped by this, any ideas or suggestions would
>>>> be appreciated.
>>>>
>>>> -=bill
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To start a new topic, e-mail: users@tomcat.apache.org
>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: users@tomcat.apache.org
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: Can two Tomcat web apps deadlock each other?
Posted by Alexey Solofnenko <A....@mdl.com>.
There can be a simple problem with locking - see
http://tomcat.apache.org/faq/windows.html#lock . On Linux the files are
usually not locked, so you can get "class not found exception" when a
jar file is replaced with a new one.
Ask administrators to get the stack trace (and check if CPU is at 100%
or not - maybe it is not a deadlock). Otherwise you can look for a
problem for a very long time.
You can also add try/catch with finite number of retries around
connection code. Please also check that your application shuts down
cleanly - no exceptions are thrown during shutdown (but they should be
logged) and preferably there are no finally() methods.
Wm.A.Stafford wrote:
> Thanks Alexey. Unfortunately, the server in question is not ours and
> we do not even have log in on it, so any kind of sane analysis is
> probably out of the question.
> All we can do is try deploying another version with changes that will
> either fix the problem (we hope) or yield some more information about
> what is going on.
>
>
> -=bill
>
> Alexey Solofnenko wrote:
>> Everything is possible, but unlikely. Please try running server stack
>> trace from
>> http://tmitevski.users.mcs2.netarray.com/stacktrace/app/launch.jnlp
>> to get a thread dump. It will show the list of threads and what locks
>> they have acquired and what locks they are waiting for.
>>
>> - Alexey.
>>
>> Wm.A.Stafford wrote:
>>> We are deploying a newer version of a web app to run in the same
>>> Tomcat instance (1.4.31) as the existing version. On our
>>> development servers, winXP, if the new version encounters a startup
>>> problem the production app will start and only the new version will
>>> fail.
>>>
>>> On the production server, which is linux, Tomcat seems to 'hang' on
>>> the first failure encountered when starting the new app and nothing
>>> further happens. Tomcat has to be restarted after deleting the new
>>> app when it enters this state. In the localhost log the last log
>>> entry is the exception logged from the new app and there is no
>>> further logging. Since we have been doing some database changes the
>>> usual error that causes this is Jakarta DBCP connection failure but
>>> we have also seen it for a missing class file. So I don't think
>>> the error per se is at the root of the problem.
>>>
>>> To me this looks like a deadlock. Is it possible for one Tomcat web
>>> application to deadlock with another? An obvious difference is
>>> windows vs linux servers. Could there be some config issue for
>>> Tomcat on linux that would lead to this behavior?
>>>
>>> We are completely stumped by this, any ideas or suggestions would be
>>> appreciated.
>>>
>>> -=bill
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To start a new topic, e-mail: users@tomcat.apache.org
>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
--
------------------------------------------------------------------------
Alexey N. Solofnenko <http://trelony.cjb.net/>
Pleasant Hill, CA (GMT-8 usually)
Re: Can two Tomcat web apps deadlock each other?
Posted by "Wm.A.Stafford" <st...@marine.rutgers.edu>.
Thanks Alexey. Unfortunately, the server in question is not ours and we
do not even have log in on it, so any kind of sane analysis is probably
out of the question.
All we can do is try deploying another version with changes that will
either fix the problem (we hope) or yield some more information about
what is going on.
-=bill
Alexey Solofnenko wrote:
> Everything is possible, but unlikely. Please try running server stack
> trace from
> http://tmitevski.users.mcs2.netarray.com/stacktrace/app/launch.jnlp to
> get a thread dump. It will show the list of threads and what locks
> they have acquired and what locks they are waiting for.
>
> - Alexey.
>
> Wm.A.Stafford wrote:
>> We are deploying a newer version of a web app to run in the same
>> Tomcat instance (1.4.31) as the existing version. On our development
>> servers, winXP, if the new version encounters a startup problem the
>> production app will start and only the new version will fail.
>>
>> On the production server, which is linux, Tomcat seems to 'hang' on
>> the first failure encountered when starting the new app and nothing
>> further happens. Tomcat has to be restarted after deleting the new
>> app when it enters this state. In the localhost log the last log
>> entry is the exception logged from the new app and there is no
>> further logging. Since we have been doing some database changes the
>> usual error that causes this is Jakarta DBCP connection failure but
>> we have also seen it for a missing class file. So I don't think the
>> error per se is at the root of the problem.
>>
>> To me this looks like a deadlock. Is it possible for one Tomcat web
>> application to deadlock with another? An obvious difference is
>> windows vs linux servers. Could there be some config issue for
>> Tomcat on linux that would lead to this behavior?
>>
>> We are completely stumped by this, any ideas or suggestions would be
>> appreciated.
>>
>> -=bill
>>
>>
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: users@tomcat.apache.org
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: Can two Tomcat web apps deadlock each other?
Posted by Alexey Solofnenko <A....@mdl.com>.
Everything is possible, but unlikely. Please try running server stack
trace from
http://tmitevski.users.mcs2.netarray.com/stacktrace/app/launch.jnlp to
get a thread dump. It will show the list of threads and what locks they
have acquired and what locks they are waiting for.
- Alexey.
Wm.A.Stafford wrote:
> We are deploying a newer version of a web app to run in the same
> Tomcat instance (1.4.31) as the existing version. On our development
> servers, winXP, if the new version encounters a startup problem the
> production app will start and only the new version will fail.
>
> On the production server, which is linux, Tomcat seems to 'hang' on
> the first failure encountered when starting the new app and nothing
> further happens. Tomcat has to be restarted after deleting the new app
> when it enters this state. In the localhost log the last log entry is
> the exception logged from the new app and there is no further
> logging. Since we have been doing some database changes the usual
> error that causes this is Jakarta DBCP connection failure but we have
> also seen it for a missing class file. So I don't think the error
> per se is at the root of the problem.
>
> To me this looks like a deadlock. Is it possible for one Tomcat web
> application to deadlock with another?
> An obvious difference is windows vs linux servers. Could there be
> some config issue for Tomcat on linux that would lead to this behavior?
>
> We are completely stumped by this, any ideas or suggestions would be
> appreciated.
>
> -=bill
>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
--
------------------------------------------------------------------------
Alexey N. Solofnenko <http://trelony.cjb.net/>
Pleasant Hill, CA (GMT-8 usually)