[OGo-Developer] Bugs in mod_ngobjweb

Stéphane Corthésy developer@opengroupware.org
Thu, 27 Mar 2008 14:58:14 +0100


Hi,

On Mar 27, 2008, at 12:11 PM, Helge Hess wrote:

> On 27.03.2008, at 11:16, Stéphane Corthésy wrote:
>> I'm getting more and more confused :-(
>
> Sorry :-)
>
>>> 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.
>
> How did you get mod_ngobjweb to compile on 10.5.x? I didn't manage  
> that :-/


Here's our mod_ngobjweb/GNUmakefile (we build mod_ngobjweb from  
command-line, with a simple 'make'; building from Xcode doesn't work,  
for some reason):
http://www.sente.ch/pub/beta/mod_ngobjweb/GNUmakefile


> Maybe your problems are due to an 64bit issue? Might be possible  
> that mod_ngobjweb has bugs here.


That could be, right, as Sebastian might have the same problems on a  
x86_64.


>> 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 never seen that behaviour. Maybe Safari does HTTP pipelining  
> or something like that, which in turn might confuse Apache/ 
> mod_ngobjweb. No idea, really.
>
>> Question is: would it work to use mod_proxy?
>
> Yes, it should work with mod_proxy. Its has the disadvantage that  
> your app blocks on IO while the file is being uploaded. But maybe  
> thats not a big problem for your app (certainly better than not- 
> working-at-all ;-).


In our case it's not a problem to block the app during upload; I'm  
gonna try the mod_proxy, thanks.


>> 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
>
> My best guess is 64bit issue or some 10.5.x incompatibility. Or  
> some Apache 2.2 incompat. Don't know.
>
> Maybe you should just go for mod_proxy in this kind of setup (thats  =

> what I use for 10.5 development too). Drop mod_ngobjweb from your  
> Apache configuration, add mod_proxy and use the config section I  
> showed in one of the previous mails.
>
> Greets,
>   Helge
>
> PS: the real solution would be to write a threaded/nio  
> WOHttpAdaptor. Thats what WebObjects did too (request processing  
> would be done multithreaded, but -dispatchRequest: would still be  
> single threaded).


What about using Apple's adaptor? (and later, the monitor - rewritten  
in ObjC - as it is opensource now)


Thanks!

Stéphane


> -- 
> Helge Hess
> http://www.helgehess.eu/--
> OpenGroupware.org Developer
> developer@opengroupware.org
> http://mail.opengroupware.org/mailman/listinfo/developer