Replies inline (and at the end).

Leo,

On 2/24/2013 12:21 PM, Leo Donahue - RDSA IT wrote:
1. What is the significance of GET requests with what seems like no resource 
request being made?  They all seem to come from the side of the globe.

such as:

220.181.108.165 - - [23/Feb/2013:22:41:22 -0700] "GET / HTTP/1.1" 200 13258

220.181.108.165 - - [23/Feb/2013:22:41:22 -0700] "GET / HTTP/1.1" 200 13258

The browser getting the ROOT of the web site. Tomcat has returned a 200 status code and sent 13258 bytes.

An overview of what the access logs look like can be found here:

http://httpd.apache.org/docs/2.4/logs.html

While this is for Apache HTTPD, the same general logging format is used by Apache Tomcat.

The request is coming from China. Who knows why they're requesting your web site.



2. Why do some people like making dozens of requests in a row to get the 
favicon?  Even if it was there, why do they want it?

such as:

75.171.44.236 - - [23/Feb/2013:21:40:49 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:40:53 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:40:54 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:40:54 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:40:55 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:40:55 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:40:55 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:40:55 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:40:56 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:40:57 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:40:58 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:41:06 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:41:06 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:41:10 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:41:14 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:41:14 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:41:16 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:41:16 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:41:20 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:41:20 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:41:23 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:41:23 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:41:35 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:41:35 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:41:55 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
75.171.44.236 - - [23/Feb/2013:21:41:55 -0700] "GET /favicon.ico HTTP/1.1" 404 
6386
many more...


Some browsers request favicon.ico. On Google Chrome, it makes a nice little image at the start of the tab. I have a red brick arch for Redmine, a feather for Apache HTTPD, A tomcat for Apache Tomcat, and a white "g" on a blue square for Google (my current tabs).


3. Can I assume that com.esri.rest.catalog.CatalogServlet.service doesn't clean 
up after itself well?  This was the fifth occurrence of the same exception in 
localhost logs before I start getting out of memory errors.

such as:

Feb 24, 2013 5:46:57 AM org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet catalog threw exception
com.esri.rest.HttpException: Service 'AGIS_MARICOPA' of type 'MapServer' does 
not exist or is inaccessible.
        at com.esri.rest.catalog.CatalogServlet.service(CatalogServlet.java:176)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
        at 
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
        at 
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
        at 
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
        at com.esri.rest.DispatchServlet.service(DispatchServlet.java:123)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at 
com.esri.rest.security.SecurityFilter.doFilter(SecurityFilter.java:79)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at com.esri.rest.RestFilter.doFilter(RestFilter.java:81)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
        at 
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
        at java.lang.Thread.run(Thread.java:662)
Feb 24, 2013 7:32:56 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [] 
threw exception [PermGen space] with root cause
java.lang.OutOfMemoryError: PermGen space
Feb 24, 2013 7:36:19 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [] 
threw exception [PermGen space] with root cause
java.lang.OutOfMemoryError: PermGen space
Feb 24, 2013 7:36:32 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [] 
threw exception [PermGen space] with root cause
java.lang.OutOfMemoryError: PermGen space
Feb 24, 2013 7:39:17 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [] 
threw exception [PermGen space] with root cause
java.lang.OutOfMemoryError: PermGen space
Feb 24, 2013 7:40:09 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [] 
threw exception [PermGen space] with root cause
java.lang.OutOfMemoryError: PermGen space
Feb 24, 2013 7:41:56 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [] 
threw exception [PermGen space] with root cause
java.lang.OutOfMemoryError: PermGen space
Feb 24, 2013 7:41:58 AM org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet Faces Servlet threw exception
java.lang.OutOfMemoryError: PermGen space
Feb 24, 2013 7:41:58 AM org.apache.catalina.core.StandardHostValve custom
SEVERE: Exception Processing 
ErrorPage[exceptionType=javax.servlet.ServletException, 
location=/WEB-INF/error/servlet_exception_template.xhtml]
javax.servlet.ServletException: PermGen space
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:321)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
        at 
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:489)
        at 
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
        at 
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
        at 
org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:467)
        at 
org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:412)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:201)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
        at 
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.OutOfMemoryError: PermGen space
Feb 24, 2013 7:42:07 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [] 
threw exception [PermGen space] with root cause
java.lang.OutOfMemoryError: PermGen space
Feb 24, 2013 8:19:59 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [] 
threw exception [PermGen space] with root cause
java.lang.OutOfMemoryError: PermGen space
Feb 24, 2013 8:32:55 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [] 
threw exception [PermGen space] with root cause
java.lang.OutOfMemoryError: PermGen space
Feb 24, 2013 8:40:46 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [] 
threw exception [PermGen space] with root cause
java.lang.OutOfMemoryError: PermGen space
Feb 24, 2013 8:40:56 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [] 
threw exception [PermGen space] with root cause
java.lang.OutOfMemoryError: PermGen space
Feb 24, 2013 8:40:57 AM org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet Faces Servlet threw exception
java.lang.OutOfMemoryError: PermGen space

I will not say anything (OK, much less than my usual) concerning this application.

It seems that this type of request is a wonderful tool for DOS attacks. I just keep asking for non-existent services until your web server falls over with an out of PermGen memory error.

It also seems very unpleasant that this exception is thrown into the Apache Tomcat logs rather than an application-specific log. To me this means that the application does not implement its own logging.

It also appears that this application doesn't catch common (presumably recoverable) errors gracefully.

Coupled with the threading issues you posted in your previous mail, I suggest contacting the vendor with these issues. The issues you have posted so far seem to be the following:

1. Thread (resource) management
2. Logging
3. Graceful recovery from common errors
4. Possible PermGen issues - (probably failure to clean up from item 4)

. . . . just my two cents.
/mde/


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to