You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by Grzegorz Tańczyk <go...@polzone.pl> on 2004/11/08 23:45:07 UTC

mod_jk2 and file upload

Hello dev,

  I don't know what is reason of this problem: cocoon, tomcat or
  mod_jk2. When I try to upload file with size greater then 4096 then
  I see this error(see at the end :)). If I connect to cocoon directly
  by 8080 port then there is no problem with it. When I look to
  multipartparser.java I see:
  private final static int FILE_BUFFER_SIZE = 4096;

  I didn't make any experiments, but isn't F_B_S to big?

ERROR   (2004-11-08) 12:06.48:866   [access] (Unknown-URI) Unknown-thread/CocoonServlet: Problem with Cocoon servlet
org.apache.cocoon.servlet.multipart.MultipartException: Malformed stream: Read timed out
        at org.apache.cocoon.servlet.multipart.MultipartParser.parsePart(MultipartParser.java:175)
        at org.apache.cocoon.servlet.multipart.MultipartParser.parseMultiPart(MultipartParser.java:128)
        at org.apache.cocoon.servlet.multipart.MultipartParser.getParts(MultipartParser.java:101)
        at org.apache.cocoon.servlet.multipart.MultipartParser.getParts(MultipartParser.java:107)
        at org.apache.cocoon.servlet.multipart.RequestFactory.getServletRequest(RequestFactory.java:94)
        at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1004)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:324)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:395)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:673)
        at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:615)
        at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:786)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
        at java.lang.Thread.run(Thread.java:534)
  

-- 
Best regards,
 Grzegorz                          mailto:goliatus@polzone.pl


Re: mod_jk2 and file upload

Posted by Leszek Gawron <lg...@mobilebox.pl>.
Jorg Heymans wrote:
> Posting to the list in case this is useful to others...
> 
> (include mod-jk2.conf in your httpd.conf)
> 
> ================== mod-jk2.conf ==============
> LoadModule jk2_module modules/mod_jk2.so
> 
> <IfModule mod_jk2.c>
>     #-----------------------------------------------
>     # Set the Apache2 logger level
>     #-----------------------------------------------
>     #
>     JkSet2 logger level debug
>     #-----------------------------------------------
>     # Set the alternate log file
>     #-----------------------------------------------
>     #
>     JkSet2 logger.file:0 file ${serverRoot}/logs/jk2.log
>     JkSet2 logger.file:0 level debug
>     #-----------------------------------------------
>     # Set the scoreboard file
>     #-----------------------------------------------
>     #
>     JkSet2 shm: file ${serverRoot}/logs/jk2.shm
>     JkSet2 shm: size 1048576
>     #-----------------------------------------------
>     # Where to find the workers2.properties file
>     #-----------------------------------------------
>     #
>     JkSet config.file ${serverRoot}/conf/workers2.properties
>     #-----------------------------------------------
>     # Setup status worker
>     #-----------------------------------------------
>     #
>     JkSet2 status: info "Status worker, displays runtime information"
>     JkSet2 workerEnv: logger logger.file:0
>     #-----------------------------------------------
>     # Configure the /jkstatus handler
>     #-----------------------------------------------
>     #
>     <Location "/jkstatus">
>         JkUriSet group status:
>         JkUriSet info "Map the /jkstatus handler to the Web server uri 
> space"
>         Allow from all
>     </Location>
>     <Location "/*">
>         JkUriSet group lb:lb
>         JkUriSet info "Jetty load balancing and failover"
>     </Location>
> </IfModule>
> 
> ================= mod-jk2.conf END =================
> 
> ============= workers2.properties ==================
> [channel.socket:localhost:8310]
> port=8310
> host=127.0.0.1
> 
> [channel.socket:localhost:8320]
> port=8320
> host=127.0.0.1
> 
> [ajp13:localhost:8310]
> channel=channel.socket:localhost:8310
> 
> [ajp13:localhost:8320]
> channel=channel.socket:localhost:8320
> 
> [lb:balanced]
> worker=ajp13:localhost:8310
> worker=ajp13:localhost:8320
> 
> [uri:/*]
> group=lb
> 
> ================= workers2.properties END =================
> 
> You need to setup the ajp13 listener in your jetty config
>   <Call name="addListener">
>     <Arg>
>       <New class="org.mortbay.http.ajp.AJP13Listener">
>         <Set name="port">8310</Set>
>       </New>
>     </Arg>
>   </Call>
> 
> 
> HTH
> 
> Grzegorz Tańczyk wrote:
> 
>> Hello Jorg,
>>
>>   Ok, It would be great!
>>
>> Tuesday, November 9, 2004, 9:27:18 AM, you wrote:
>> JH> Hi,
>>
>> JH> I am consistently uploading 400kb files over mod_jk2 to Jetty without
>> JH> problems. I can send you my mod_jk2 config if you want.
>>
>> JH> Regards
>> JH> Jorg
>>
>>
> 
Could you please wikify it ?

-- 
Leszek Gawron


Re: mod_jk2 and file upload

Posted by Jorg Heymans <jh...@domek.be>.
Posting to the list in case this is useful to others...

(include mod-jk2.conf in your httpd.conf)

================== mod-jk2.conf ==============
LoadModule jk2_module modules/mod_jk2.so

<IfModule mod_jk2.c>
     #-----------------------------------------------
     # Set the Apache2 logger level
     #-----------------------------------------------
     #
     JkSet2 logger level debug
     #-----------------------------------------------
     # Set the alternate log file
     #-----------------------------------------------
     #
     JkSet2 logger.file:0 file ${serverRoot}/logs/jk2.log
     JkSet2 logger.file:0 level debug
     #-----------------------------------------------
     # Set the scoreboard file
     #-----------------------------------------------
     #
     JkSet2 shm: file ${serverRoot}/logs/jk2.shm
     JkSet2 shm: size 1048576
     #-----------------------------------------------
     # Where to find the workers2.properties file
     #-----------------------------------------------
     #
     JkSet config.file ${serverRoot}/conf/workers2.properties
     #-----------------------------------------------
     # Setup status worker
     #-----------------------------------------------
     #
     JkSet2 status: info "Status worker, displays runtime information"
     JkSet2 workerEnv: logger logger.file:0
     #-----------------------------------------------
     # Configure the /jkstatus handler
     #-----------------------------------------------
     #
     <Location "/jkstatus">
         JkUriSet group status:
         JkUriSet info "Map the /jkstatus handler to the Web server uri 
space"
         Allow from all
     </Location>
     <Location "/*">
         JkUriSet group lb:lb
         JkUriSet info "Jetty load balancing and failover"
     </Location>
</IfModule>

================= mod-jk2.conf END =================

============= workers2.properties ==================
[channel.socket:localhost:8310]
port=8310
host=127.0.0.1

[channel.socket:localhost:8320]
port=8320
host=127.0.0.1

[ajp13:localhost:8310]
channel=channel.socket:localhost:8310

[ajp13:localhost:8320]
channel=channel.socket:localhost:8320

[lb:balanced]
worker=ajp13:localhost:8310
worker=ajp13:localhost:8320

[uri:/*]
group=lb

================= workers2.properties END =================

You need to setup the ajp13 listener in your jetty config
   <Call name="addListener">
     <Arg>
       <New class="org.mortbay.http.ajp.AJP13Listener">
         <Set name="port">8310</Set>
       </New>
     </Arg>
   </Call>


HTH

Grzegorz Tańczyk wrote:
> Hello Jorg,
> 
>   Ok, It would be great!
> 
> Tuesday, November 9, 2004, 9:27:18 AM, you wrote:
> JH> Hi,
> 
> JH> I am consistently uploading 400kb files over mod_jk2 to Jetty without
> JH> problems. I can send you my mod_jk2 config if you want.
> 
> JH> Regards
> JH> Jorg
> 
> 


Re[2]: mod_jk2 and file upload

Posted by Grzegorz Tańczyk <go...@polzone.pl>.
Hello Jorg,

  Ok, It would be great!

Tuesday, November 9, 2004, 9:27:18 AM, you wrote:
JH> Hi,

JH> I am consistently uploading 400kb files over mod_jk2 to Jetty without
JH> problems. I can send you my mod_jk2 config if you want.

JH> Regards
JH> Jorg


-- 
Best regards,
 Grzegorz                            mailto:goliatus@polzone.pl


Re: mod_jk2 and file upload

Posted by Jorg Heymans <jh...@domek.be>.
Hi,

I am consistently uploading 400kb files over mod_jk2 to Jetty without 
problems. I can send you my mod_jk2 config if you want.

Regards
Jorg

Grzegorz Tańczyk wrote:
> Hello dev,
> 
>   I don't know what is reason of this problem: cocoon, tomcat or
>   mod_jk2. When I try to upload file with size greater then 4096 then
>   I see this error(see at the end :)). If I connect to cocoon directly
>   by 8080 port then there is no problem with it. When I look to
>   multipartparser.java I see:
>   private final static int FILE_BUFFER_SIZE = 4096;
> 
>   I didn't make any experiments, but isn't F_B_S to big?
> 
> ERROR   (2004-11-08) 12:06.48:866   [access] (Unknown-URI) Unknown-thread/CocoonServlet: Problem with Cocoon servlet
> org.apache.cocoon.servlet.multipart.MultipartException: Malformed stream: Read timed out
>         at org.apache.cocoon.servlet.multipart.MultipartParser.parsePart(MultipartParser.java:175)
>         at org.apache.cocoon.servlet.multipart.MultipartParser.parseMultiPart(MultipartParser.java:128)
>         at org.apache.cocoon.servlet.multipart.MultipartParser.getParts(MultipartParser.java:101)
>         at org.apache.cocoon.servlet.multipart.MultipartParser.getParts(MultipartParser.java:107)
>         at org.apache.cocoon.servlet.multipart.RequestFactory.getServletRequest(RequestFactory.java:94)
>         at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1004)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
>         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>         at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
>         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>         at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
>         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)
>         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
>         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
>         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>         at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)
>         at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:324)
>         at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:395)
>         at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:673)
>         at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:615)
>         at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:786)
>         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
>         at java.lang.Thread.run(Thread.java:534)
>   
>