[OGo-Developer] Bugs in mod_ngobjweb

Sebastian Reitenbach developer@opengroupware.org
Thu, 27 Mar 2008 13:45:48 +0100


developer@opengroupware.org wrote: 
> Hi,
> 
> I'm getting more and more confused :-(
> 
> On Mar 27, 2008, at 10:15 AM, Helge Hess wrote:
> 
> > On 27.03.2008, at 09:49, St=E9phane Corth=E9sy wrote:
> >> Does this mean that mod_ngobjweb does not support file upload?
> >
> > Sure it does (and its used that way a lot in OGo, not exactly sure  
> > why you are experiencing issues).
> 
> 
> OK, so that's good news.
> Precisely, I used WOFileUpload, and mod_ngobjweb on apache 2.2.6/OSX  
> 10.5.2 Server. Most of the time users can't upload files with Safari;  
repeating the operation with the same file always fails: Safari sends  file, 
and waits forever.
> I noticed the httpd crashed sometimes, in mod_ngobjweb code, or,  
> worse, becomes completely crazy and eats all memory and CPU!
I've seen httpd crashes too, but I am not sure, whether they happen in the 
mod_ngobjweb module. I've also seen apache eating all CPU and Memory.
I'm on sles10sp1 x86_64, with ogo/mod_ngobjweb installed as 64Bit versions.

But I am still unable to reproduce the issue, as they seem to 
happen "randomly". Most of the users use Konqueror, or Firefox.

But if I remember correctly, many of these eating all CPU/Memory happens 
when uploading files or mail attachements.

Just my observations
Sebastian

> The same files passed via Firefox work. I don't know whether it's  
> 100% success, though.
> 
> 
> >> I know very little about apache, bear with me.
> >> Currently I have this config:
> >
> > Hm, no, you either use mod_ngobjweb OR mod_proxy :-)
> >
> >
> > OK, back to the start ;-) What is mod_ngobjweb. Its
> > a) a non-streaming proxy
> > b) a protocol downgrader
> > c) a load balancer which works in combination with snsd
> > You usually don't care about c).
> >
> > a) means that mod_ngobjweb collects the whole HTTP requests sent by  > 
the browser before it transfers it to the SOPE application. This  
> > removes the browser<->WAN<->Server latency/slowness towards the  
> > app. Which is important because the SOPE app is non-threaded (and  
> > doesn't use non-blocking-IO for reading requests), hence it should  
> > not block on IO.
> >
> > b) is basically the reason why you could not use Apache mod_proxy  
> > as a SOPE frontend, even if you don't care about issue a). SOPE  
> > applications are not fully conforming HTTP servers, especially not  
> > HTTP/1.1 ones. Therefore Apache is used in front, which does all  
> > the HTTP heavy-lifting. mod_ngobjweb then talks HTTP/1.0 w/o  
> > keepalive etc to the SOPE app.
> > Now the new thing (and that was my comment in the last mail) is,  
> > that mod_proxy can now also do the downgrade for 'b0rked' HTTP  
> > backend servers.
> >
> > Why would you want to use mod_proxy. Well, it comes preinstalled  
> > with every Apache and its of course much more stable :-)
> > Not sure yet how to resolve a) though.
> 
> 
> Question is: would it work to use mod_proxy?
> 
> > Summary for you: you probably want to ignore all that and continue  
> > fixing your specific mod_ngobjweb problem :-)
> 
> 
> Hhm, well... Any clue on what's wrong with the module?
> 
> Here's the latest crash (this morning); module had the fixes I sent you.
> 
> Thread 0 Crashed:
> 0   libaprutil-1.0.dylib                0x00069218 apr_brigade_create  + 
42
> 1   httpd                               0x0002dcdd  
> ap_get_client_block + 98
> 2   mod_ngobjweb.so                     0x003b1a77 _readRequestBody +  269
> 3   mod_ngobjweb.so                     0x003b230c ngobjweb_handler +  502
> 4   httpd                               0x00002182 ap_run_handler + 70
> 5   httpd                               0x000028cf ap_invoke_handler  
> + 316
> 6   httpd                               0x0002a4e0 ap_process_request  + 
101
> 7   httpd                               0x00026eb6  
> ap_process_http_connection + 113
> 8   httpd                               0x00011055  
> ap_run_process_connection + 70
> 9   httpd                               0x0001146f  
> ap_process_connection + 81
> 10  httpd                               0x000308c6 child_main + 1169
> 11  httpd                               0x00030aae make_child + 384
> 12  httpd                               0x00030d11  
> perform_idle_server_maintenance + 480
> 13  httpd                               0x0003125d ap_mpm_run + 1285
> 14  httpd                               0x0000962b main + 2969
> 15  httpd                               0x000018f6 start + 54
> 
> 
> St=E9phane
> 
> 
> > Greets,
> >   Helge
> > -- 
> > Helge Hess
> > http://www.helgehess.eu/--
> > OpenGroupware.org Developer
> > developer@opengroupware.org
> > http://mail.opengroupware.org/mailman/listinfo/developer
> 
> -- 
> OpenGroupware.org Developer
> developer@opengroupware.org
> http://mail.opengroupware.org/mailman/listinfo/developer
>