[OGo-Developer] Bugs in mod_ngobjweb

Helge Hess developer@opengroupware.org
Thu, 27 Mar 2008 12:11:22 +0100


On 27.03.2008, at 11:16, St=E9phane Corth=E9sy wrote:
> I'm getting more and more confused :-(

Sorry :-)

>> Sure it does (and its used that way a lot in OGo, not exactly sure =20=

>> why you are experiencing issues).
> OK, so that's good news.
> Precisely, I used WOFileUpload, and mod_ngobjweb on apache 2.2.6/OSX =20=

> 10.5.2 Server.

How did you get mod_ngobjweb to compile on 10.5.x? I didn't manage =20
that :-/

Maybe your problems are due to an 64bit issue? Might be possible that =20=

mod_ngobjweb has bugs here.

> Most of the time users can't upload files with Safari; repeating the =20=

> operation with the same file always fails: Safari sends file, and =20
> waits forever.
> I noticed the httpd crashed sometimes, in mod_ngobjweb code, or, =20
> worse, becomes completely crazy and eats all memory and CPU!

I've never seen that behaviour. Maybe Safari does HTTP pipelining or =20
something like that, which in turn might confuse Apache/mod_ngobjweb. =20=

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 =20=

app blocks on IO while the file is being uploaded. But maybe thats not =20=

a big problem for your app (certainly better than not-working-at-=20
all ;-).

> Hhm, well... Any clue on what's wrong with the module?
>
> Here's the latest crash (this morning); module had the fixes I sent =20=

> you.
>
> Thread 0 Crashed:
> 0   libaprutil-1.0.dylib                0x00069218 =20
> apr_brigade_create + 42
> 1   httpd                               0x0002dcdd =20
> ap_get_client_block + 98
> 2   mod_ngobjweb.so                     0x003b1a77 _readRequestBody =20=

> + 269

My best guess is 64bit issue or some 10.5.x incompatibility. Or some =20
Apache 2.2 incompat. Don't know.

Maybe you should just go for mod_proxy in this kind of setup (thats =20
what I use for 10.5 development too). Drop mod_ngobjweb from your =20
Apache configuration, add mod_proxy and use the config section I =20
showed in one of the previous mails.

Greets,
   Helge

PS: the real solution would be to write a threaded/nio WOHttpAdaptor. =20=

Thats what WebObjects did too (request processing would be done =20
multithreaded, but -dispatchRequest: would still be single threaded).
--=20
Helge Hess
http://www.helgehess.eu/=