Re: [users@httpd] 200 OK for a network error?

2014-07-24 Thread Nozomi Anzai
Hi,

Thank you for your comment.

I tried Apache 2.4.9 +  mod_proxy_ajp + Tomcat 6.0.35. But, unfortunately
HTTP status codes were the same ones.  (Apache HTTP status = 200,
Tomcat's =  500.)
Apache 2.2.x + Tomcat 6.0.35 behaves so, too.

Next, I tried with Apache 2.2.15 (2.4.9) + mod_proxy_http (not ajp) +
Tomcat 6.0.35, uploading a large-sized file and switching off network of
the client machine while waiting HTTP response. At that time, the Apache
HTTP status was 400, and Tomcat's one was 500.
It seems more suitable for me because 400 means a kind of client error.

Is it violated by AJP or RFC specification that the ajp's HTTP status 200
in such a network error?


 Hello,
 
 I think this has been fixed in 2.4.8 with this changelog:
 
   *) core: Detect incomplete request and response bodies, log an error and
  forward it to the underlying filters. PR 55475 [Yann Ylavic]
 
 A backport is proposed for next 2.2.x release and is waiting for approvals.
 I will update the bugzilla
 https://issues.apache.org/bugzilla/show_bug.cgi?id=55475 about this.
 
 Please note that with this fix the HTTP status returned to the client
 (and logued) will be 408 (Request Timeout).
 
 On Tue, Jul 15, 2014 at 8:22 AM, Nozomi Anzai an...@sraoss.co.jp wrote:
  Does anyone have some comments?
 
  Hi,
 
  I have a question about HTTP status codes.
 
  - I use Apache 2.2.15 + mod_proxy_ajp + Tomcat 6.0.35.
- Apache's Timeout is 90 sec, and Tomcat AJP connector's
  connectionTimeout is 1 (10 sec).
- Apache's keepAlive is off.
 
  - While uploading a large-sized file and waiting the resoponse, I switched
off network of the client machine.
 
  - The Tomcat returned a status code which depended on the application (500
internal server error, 200 OK and so on), but Apache always wrote 200 OK
in its access log.
 
  I'm wondering if it is by design or not that Apache returns 200 OK in such
  network error. I don't expect that Apache has to return Tomcat's status
  codes, but expect a kind of 50x error.
 
  Any ideas?
 
 
 
  The log messages about this are as follows:
 
  
  [12:00:26] A user starts file uploading.
  
 
  == httpd-2.2.15/logs/error_log ==
  [Tue Jul 01 12:00:26 2014] [debug] mod_proxy_ajp.c(45): proxy: AJP: 
  canonicalising URL //localhost:8009/upload/ultest
  :
  [Tue Jul 01 12:00:26 2014] [debug] mod_proxy_ajp.c(270): proxy: data to 
  read (max 8186 at 4)
  [Tue Jul 01 12:00:26 2014] [debug] mod_proxy_ajp.c(285): proxy: got 952 
  bytes of data
 
  
  [12:00:30] A user disconnects the client's network.
  
 
  (There are no log messages about this.)
 
  
  [12:00:50] Tomcat regognizes the timeout. (20 sec after disconnecting)
  
 
  == tomcat-6.0.35/logs/catalina.out ==
  org.apache.commons.fileupload.FileUploadBase$IOFileUploadException:Processing
   of multipart/form-data request failed. Read timed out
  :
  Caused by: java.net.SocketTimeoutException: Read timed out
  :
 
  == tomcat-6.0.35/logs/localhost.2014-07-01.log ==
  Jul 01, 2014 12:00:50 PM org.apache.catalina.core.StandardWrapperValve 
  invoke
  SEVERE: Servlet.service() for servlet uploadtest threw exception
  javax.servlet.ServletException: FOR DEBUG servlet
  :
 
  == tomcat-6.0.35/logs/localhost_access_log.2014-07-01.txt ==
  133.137.177.172 - - [01/Jul/2014:12:00:50 +0900] POST /upload/ultest 
  HTTP/1.1 500 1362 23396
 
  
  [12:02:00] Apache recognizes the timeout. (90 sec after disconnecting)
  
 
  == httpd-2.2.15/logs/error_log ==
  [Tue Jul 01 12:02:00 2014] [debug] mod_proxy_ajp.c(379): (70007)The 
  timeout specified has expired: ap_get_brigade failed
  [Tue Jul 01 12:02:00 2014] [debug] mod_proxy_ajp.c(545): proxy: Processing 
  of request failed backend: 0, output: 1, data_sent: 0
  [Tue Jul 01 12:02:00 2014] [debug] proxy_util.c(2029): proxy: AJP: has 
  released connection for (localhost)
 
  
  [12:03:30] Apache recognizes the timeout. (180 sec after disconnecting)
  
 
  == httpd-2.2.15/logs/access_log ==
  133.137.177.172 - - [01/Jul/2014:12:00:26 +0900] POST /upload/ultest 
  HTTP/1.1 200 - 183547381 -
 
  
 
 
  Regards,
 
  --
  Nozomi Anzai
 
  

Re: [users@httpd] 200 OK for a network error?

2014-07-15 Thread Nozomi Anzai
Does anyone have some comments?

 Hi,
 
 I have a question about HTTP status codes.
 
 - I use Apache 2.2.15 + mod_proxy_ajp + Tomcat 6.0.35.
   - Apache's Timeout is 90 sec, and Tomcat AJP connector's
 connectionTimeout is 1 (10 sec).
   - Apache's keepAlive is off.
 
 - While uploading a large-sized file and waiting the resoponse, I switched
   off network of the client machine. 
 
 - The Tomcat returned a status code which depended on the application (500
   internal server error, 200 OK and so on), but Apache always wrote 200 OK
   in its access log.
 
 I'm wondering if it is by design or not that Apache returns 200 OK in such
 network error. I don't expect that Apache has to return Tomcat's status
 codes, but expect a kind of 50x error.
 
 Any ideas?
 
 
 
 The log messages about this are as follows:
 
 
 [12:00:26] A user starts file uploading.
 
 
 == httpd-2.2.15/logs/error_log ==
 [Tue Jul 01 12:00:26 2014] [debug] mod_proxy_ajp.c(45): proxy: AJP: 
 canonicalising URL //localhost:8009/upload/ultest
 :
 [Tue Jul 01 12:00:26 2014] [debug] mod_proxy_ajp.c(270): proxy: data to read 
 (max 8186 at 4)
 [Tue Jul 01 12:00:26 2014] [debug] mod_proxy_ajp.c(285): proxy: got 952 bytes 
 of data
 
 
 [12:00:30] A user disconnects the client's network.
 
 
 (There are no log messages about this.)
 
 
 [12:00:50] Tomcat regognizes the timeout. (20 sec after disconnecting)
 
 
 == tomcat-6.0.35/logs/catalina.out ==
 org.apache.commons.fileupload.FileUploadBase$IOFileUploadException:Processing 
 of multipart/form-data request failed. Read timed out
 :
 Caused by: java.net.SocketTimeoutException: Read timed out
 :
 
 == tomcat-6.0.35/logs/localhost.2014-07-01.log ==
 Jul 01, 2014 12:00:50 PM org.apache.catalina.core.StandardWrapperValve invoke
 SEVERE: Servlet.service() for servlet uploadtest threw exception
 javax.servlet.ServletException: FOR DEBUG servlet
 :
 
 == tomcat-6.0.35/logs/localhost_access_log.2014-07-01.txt ==
 133.137.177.172 - - [01/Jul/2014:12:00:50 +0900] POST /upload/ultest 
 HTTP/1.1 500 1362 23396
 
 
 [12:02:00] Apache recognizes the timeout. (90 sec after disconnecting)
 
 
 == httpd-2.2.15/logs/error_log ==
 [Tue Jul 01 12:02:00 2014] [debug] mod_proxy_ajp.c(379): (70007)The timeout 
 specified has expired: ap_get_brigade failed
 [Tue Jul 01 12:02:00 2014] [debug] mod_proxy_ajp.c(545): proxy: Processing of 
 request failed backend: 0, output: 1, data_sent: 0
 [Tue Jul 01 12:02:00 2014] [debug] proxy_util.c(2029): proxy: AJP: has 
 released connection for (localhost)
 
 
 [12:03:30] Apache recognizes the timeout. (180 sec after disconnecting)
 
 
 == httpd-2.2.15/logs/access_log ==
 133.137.177.172 - - [01/Jul/2014:12:00:26 +0900] POST /upload/ultest 
 HTTP/1.1 200 - 183547381 -
 
 
 
 
 Regards,
 
 -- 
 Nozomi Anzai
 
 -
 To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org
 For additional commands, e-mail: users-h...@httpd.apache.org
 


-- 
Nozomi Anzai

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



Re: [users@httpd] 200 OK for a network error?

2014-07-15 Thread Yann Ylavic
Hello,

I think this has been fixed in 2.4.8 with this changelog:

  *) core: Detect incomplete request and response bodies, log an error and
 forward it to the underlying filters. PR 55475 [Yann Ylavic]

A backport is proposed for next 2.2.x release and is waiting for approvals.
I will update the bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=55475 about this.

Please note that with this fix the HTTP status returned to the client
(and logued) will be 408 (Request Timeout).

On Tue, Jul 15, 2014 at 8:22 AM, Nozomi Anzai an...@sraoss.co.jp wrote:
 Does anyone have some comments?

 Hi,

 I have a question about HTTP status codes.

 - I use Apache 2.2.15 + mod_proxy_ajp + Tomcat 6.0.35.
   - Apache's Timeout is 90 sec, and Tomcat AJP connector's
 connectionTimeout is 1 (10 sec).
   - Apache's keepAlive is off.

 - While uploading a large-sized file and waiting the resoponse, I switched
   off network of the client machine.

 - The Tomcat returned a status code which depended on the application (500
   internal server error, 200 OK and so on), but Apache always wrote 200 OK
   in its access log.

 I'm wondering if it is by design or not that Apache returns 200 OK in such
 network error. I don't expect that Apache has to return Tomcat's status
 codes, but expect a kind of 50x error.

 Any ideas?



 The log messages about this are as follows:

 
 [12:00:26] A user starts file uploading.
 

 == httpd-2.2.15/logs/error_log ==
 [Tue Jul 01 12:00:26 2014] [debug] mod_proxy_ajp.c(45): proxy: AJP: 
 canonicalising URL //localhost:8009/upload/ultest
 :
 [Tue Jul 01 12:00:26 2014] [debug] mod_proxy_ajp.c(270): proxy: data to read 
 (max 8186 at 4)
 [Tue Jul 01 12:00:26 2014] [debug] mod_proxy_ajp.c(285): proxy: got 952 
 bytes of data

 
 [12:00:30] A user disconnects the client's network.
 

 (There are no log messages about this.)

 
 [12:00:50] Tomcat regognizes the timeout. (20 sec after disconnecting)
 

 == tomcat-6.0.35/logs/catalina.out ==
 org.apache.commons.fileupload.FileUploadBase$IOFileUploadException:Processing
  of multipart/form-data request failed. Read timed out
 :
 Caused by: java.net.SocketTimeoutException: Read timed out
 :

 == tomcat-6.0.35/logs/localhost.2014-07-01.log ==
 Jul 01, 2014 12:00:50 PM org.apache.catalina.core.StandardWrapperValve invoke
 SEVERE: Servlet.service() for servlet uploadtest threw exception
 javax.servlet.ServletException: FOR DEBUG servlet
 :

 == tomcat-6.0.35/logs/localhost_access_log.2014-07-01.txt ==
 133.137.177.172 - - [01/Jul/2014:12:00:50 +0900] POST /upload/ultest 
 HTTP/1.1 500 1362 23396

 
 [12:02:00] Apache recognizes the timeout. (90 sec after disconnecting)
 

 == httpd-2.2.15/logs/error_log ==
 [Tue Jul 01 12:02:00 2014] [debug] mod_proxy_ajp.c(379): (70007)The timeout 
 specified has expired: ap_get_brigade failed
 [Tue Jul 01 12:02:00 2014] [debug] mod_proxy_ajp.c(545): proxy: Processing 
 of request failed backend: 0, output: 1, data_sent: 0
 [Tue Jul 01 12:02:00 2014] [debug] proxy_util.c(2029): proxy: AJP: has 
 released connection for (localhost)

 
 [12:03:30] Apache recognizes the timeout. (180 sec after disconnecting)
 

 == httpd-2.2.15/logs/access_log ==
 133.137.177.172 - - [01/Jul/2014:12:00:26 +0900] POST /upload/ultest 
 HTTP/1.1 200 - 183547381 -

 


 Regards,

 --
 Nozomi Anzai

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



 --
 Nozomi Anzai

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


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