[ic] workaround found for 99%CPU usage problem in Vend/SessionFile.pm: "::uneval($ref);" fixes it

Steffen Dettmer interchange-users@interchange.redhat.com
Wed Nov 14 08:49:00 2001


Hi,

as I wrote, I had a problem with hanging interchange processes.
strace showed that there is an endless loop (see my mails for
details). Surprisingly I found that this problem seems not to
occure with enabled debugging. I assumed a side effect.

I tried to determine the position with try and error. I found a
single line that seem to be a workaround. This line in in the
file Vend/SessionFile.pm. It's at the end in sub DELETE and reads
as it follows:

::logDebug("storing in $SessionFile: " . ::uneval($ref));

To go sure, I used the original File, which has this line
commented out. Instead I added:

::uneval($ref);

And it works, too. No 99% CPU processes. I don't know what unveal
does, but it workarounds the problem. I'm afraid that this don't
fixes the issue but gives a point less where it gets triggered.

For completness a patch:

diff -u Vend.nodebug/SessionFile.pm Vend/SessionFile.pm
--- Vend.nodebug/SessionFile.pm Wed Jul 18 04:23:14 2001
+++ Vend/SessionFile.pm Wed Nov 14 14:40:05 2001
@@ -132,6 +132,7 @@
 #::logDebug("locked $SessionFile");
        }
 #::logDebug("storing in $SessionFile: " . ::uneval($ref));
+       ::uneval($ref);
        Vend::Util::uneval_file($ref,$SessionFile);
 }
        
Dear developers, does anybody has an idea what's going on here?

oki,

Steffen

-- 
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.