From: Carsten S. <ca...@co...> - 2004-03-06 14:15:50
|
Hi Hal, I do not have a concrete idea what might cause your problem, but still... On Fri, Mar 05, 2004 at 02:36:51PM -0600, Hal Snyder wrote: > We are seeing occasional crashes while doing POST to a yaws-1.41 > server (OTP-R9C-0 on i386 solaris 8). It appears that sometimes, an > M/F/A entry mxx:out is found in the ETS table but calling it results > in {badmatch,undefined}. The exact same post succeeds most times but > occasionally fails. >=20 > We modified yaws_server.erl to retry "catch YawsFun(Arg)" in case of > undefined, wondering if there was a race at that point, but that > causes the server to loop indefinitely, i.e. waiting for something to > get into the symbol table was not the right approach. I would think the module has rather disappeared than is still to appear. Have you tried commenting out `code:purge(Mod)' in del_old_files for testing purposes? There seems to be indeed a problem here: If the Yaws file is changed, one process might recompile it and delete the old module, while another might still want to use it. > Defeating the caching in do_yaws by commenting out the "[{FileAtom, ..." > option under "case ets:lookup(SC#sconf.ets, FileAtom) of" ... made > the problem more scarce but did not eliminate it entirely. We can > still cause the failure by doing a dozen or so short posts (content > length 92 bytes or so) in rapid succession, followed a few seconds > later by a single post of about 2K bytes. Is that bigger than partial_post_size? Does the value of partial_post_size make a difference? Good luck, Carsten --=20 Carsten Schultz (2:38, 33:47), FB Mathematik, FU Berlin http://carsten.codimi.de/ PGP/GPG key on the pgp.net key servers,=20 fingerprint on my home page. |