Darryl L. Miles a écrit :

> David Delbecq wrote:
>
>> I experienced a strange behaviour of tomcat a few minutes ago. Container
>> is configured to do webapp auto reloading when classes changes. I
>> updated a few WEB-INF/classes/*.properties. Tomcat decided it's time to
>> reload the webapp because classes did change. However, it killed it's
>> own webapp loader Thread using a ThreadDeath. As a result, the webapp is
>> not accessible anymore. I suppose it's a bug from the webapp reloader,
>> but before submission to bug tracker, i'd appreciate comments.
>>
>> The result of this problem is
>> 1) webapp does not exist anymore (404 while trying to access it)
>> 2) webapp is marqued in manager as not started, but trying to start it
>> result in an 'already started' error
>> 3) you must either restart tomcat, either undeploy/redploy the webapp to
>> get it back working
>>   
>
> I have also experienced behavior similar to what you describe.  I have
> been able to categorize a few distinct variants.  First of all, can
> you reliably re-create the variant you have just witnessed ?

Not reliably. I was able to reproduce it a few times after the error
occured, but it all seems to be somehow random. Only common step is, it
happens during webapp redeploy, like a container class is using a webapp
class and so keeps it. Note it might be related to another problem i
have in my environnment. If i switch from j2sdk1.4.2_05 to
j2sdk1.4.2_11, tomcat does not start anymore, invoking a class
circularity exception in logger system. I have no clue on what causes
this, but if tomcat tries to use the webapp classloader for it's logging
purpose, that might explain. I maybe have a problem in loggers
configuration i need to investigate (considering 4 different logging
mecanisms are interacting, that could be fun :p )

>
> For some reason that I don't understand the container chooses to use a
> logger instance that is loaded through the WebappClassLoader for its
> own purposes.  Maybe this is mandated in specifications, maybe this is
> so that a web-app has some control internally over context related
> logging events the container generates.  But in my own testing if the
> container sticks with its own logger instance (not loaded via
> WebappClassLoader) then it remain inert to (mis)configuration effects
> the web-app chooses to make.

i don't think it's in specs. Moreover i never wrote any similar rule in
my webapp config. There is no reason tomcat should use my webapp classes
for logging purpose...

>
> I believe the variant you witnessed can be reduced into a simple
> situation where the web-application might reconfigure its logger
> instance (which it rightfully believes its own to do so) in such a way
> to cause problems to the container when it tries to use it later. 
> This problem shows up in a future container logging event.

I believe it's more the container using a class that don't exist anymore
as webapp is undeployed.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to