You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2007/10/23 18:44:03 UTC
DO NOT REPLY [Bug 43683] - Accessing Servlet while Reloading context gives 404 error
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG�
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=43683>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND�
INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=43683
------- Additional Comments From joe@k12s.phast.umass.edu 2007-10-23 09:44 -------
Attached is a context file and a test servlet. This servlet has alot of sleeps,
and prints a bunch of debug which will make it clear what is going on
when the servlet is being reloaded. This problem is reproducible even without
any sleep statements in the servlet.
To setup the test do this:
extract the apache-tomcat 6.0.14 binary distro
cd conf
cd Catalina
mkdir localhost
cd localhost
cp ../../../webapps/host-manager/manager.xml . (This sets up the manager
servlet for you)
Drop the ServletRestartTest.xml into this directory
cd ../..
edit the tomcat-users.xml and paste in: (this lets you access the manager
servlet with username tomcat password tomcat)
<role rolename="manager"/>
<user username="tomcat" password="tomcat" roles="manager"/>
cd ../webapps
extract the war file
cd ../bin
./catalina.sh run (this runs tomcat printing the stdio to the console)
To reproduce with this test case:
1. Visit this URL: http://localhost:8080/ServletRestartTest/ServletRestartTest
You should get:
ServletRestartTest - Servlet is in the RUNNING state
2. Visit this URL: http://localhost:8080/manager/reload?path=/ServletRestartTest
3. Then immediately reload the original url
(http://localhost:8080/ServletRestartTest/ServletRestartTest)
4. You will then receive the 404 error approximately 5 seconds later:
HTTP Status 404 - Servlet ServletRestartTest is not available
type Status report
message Servlet ServletRestartTest is not available
description The requested resource (Servlet ServletRestartTest is not available)
is not available.
Apache Tomcat/6.0.14
Optionally you may use the apachebench program to see that you will get many
404s, depending on how many requests come in:
Replace step 3 with: ab -c 10 -n 10
http://localhost:8080/ServletRestartTest/ServletRestartTest
You will see that all 10 requests fail with non-200 responses:
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (be patient).....done
Server Software: Apache-Coyote/1.1
Server Hostname: localhost
Server Port: 8080
Document Path: /ServletRestartTest/ServletRestartTest
Document Length: 1081 bytes
Concurrency Level: 10
Time taken for tests: 5.49371 seconds
Complete requests: 10
Failed requests: 0
Write errors: 0
Non-2xx responses: 10
Total transferred: 12850 bytes
HTML transferred: 10810 bytes
Requests per second: 1.98 [#/sec] (mean)
Time per request: 5049.371 [ms] (mean)
Time per request: 504.937 [ms] (mean, across all concurrent requests)
Transfer rate: 2.38 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.3 0 1
Processing: 5026 5043 6.4 5045 5048
Waiting: 5026 5038 8.0 5038 5048
Total: 5027 5043 6.1 5045 5048
Percentage of the requests served within a certain time (ms)
50% 5045
66% 5045
75% 5046
80% 5048
90% 5048
95% 5048
98% 5048
99% 5048
100% 5048 (longest request)
--
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org