Demo Discussion
Forum Config Examples Contributions Vulnerabilities
  Discussion forum about ELOG, Page 339 of 808  Not logged in ELOG logo
ID Date Icon Author Author Email Category OSdown ELOG Version Subject
  450   Wed Nov 12 12:25:44 2003 Warning Heiko Scheith.scheit@mpi-hd.mpg.deBug fixLinux2.3.9speed is very slow if logbook contains many entries
This is not really a bug, but elogd was getting really slow with our
logbook.  It took about 4 1/2 seconds just to get the default page in
threaded mode with 15 entries.  The logbook has in total about 2000
entries, though.

After playing around with the compiler option '-gp' and gprof the
problem was found: loc() is called about 18000 times per logbook
access!  (Attached you can find the gprof output.  There might be
other places where to save time: e.g. getcfg().)  The function loc()
calls stat every time to check if the language file was updated and
this takes a long time especially over NFS.

The quick solution for me was to just replace loc() with 'char
*loc(char *orig) {return orig;}'.  Therefore, I cannot use the
localization that I used anymore, which is not a big problem at the
moment.  After that the time to download the default page was only
0.16 s; almost a factor of 30 faster!

I would suggest to only read the language file (AND also the config
file!) once upon startup.  After changing things one has to restart
elogd, which is not so nice, but the long delay is not acceptable.
Another option not to restart elogd is to make elogd respond to a
signal (e.g. kill -HUP) to reread the config and language files.
  451   Wed Nov 12 12:34:02 2003 Reply Stefan Rittstefan.ritt@psi.chBug fixLinux2.3.9Re: speed is very slow if logbook contains many entries
This is a very nice measurement you made and helps me a lot. I will 
incorporte your suggestions into the next version. Under Windows however, 
there is no -HUP signal, so that won't work for them. But what I can easily 
do is to check for new configuration/language file once every access, not 
once every loc() or getcfg(). I till think about.

Thanks again,

  Stefan
  452   Tue Nov 18 23:19:57 2003 Warning Justin Dietersenderak@yahoo.comCommentLinux2.3.9Update request for Admin Guide
Heya, I've been using elog for a year or so, with a proxy through Apache,
but recently I've ran into some trouble with my Apache config, where
spammers were using my incorrectly configured proxy to send spam.

I have
some requests for the Administrator's Guide: "Running elogd under Apache". 
I'm hoping a few little notes will save others the trouble I've gone
through. Neither of these are any fault of elog's or Apache's, but of my own
ignorance. (I am using elog 2.3.9, and Apache 2.something, if that matters)

1) When doing "ProxyPass ..." when setting up elog under Apache, do NOT put
"ProxyRequests On".  This is not needed, if it is enabled and not set up
correctly, it allows spammers to send spam via Apache's proxy.  More
information on this is here: http://www.apacheweek.com/issues/03-07-25,
about halfway down the page, under "Spammers use open Apache proxies"

Even though it doesn't mention ProxyRequests in the guide, I think there
should be a little side note mentioning that "ProxyRequests On" is NOT
needed, because I put it in, thinking it was - I am probably not the only one.

2) I have found that mod_proxy_http.c must be loaded in addition to
mod_proxy.c and mod_alias.c for the proxy to work, otherwise I get a 403
error.  I think this should be mentioned as well.
  454   Thu Nov 20 17:51:53 2003 Warning Stefan Rittstefan.ritt@psi.chCommentLinux2.3.9Re: Update request for Admin Guide
Thanks, I added a note into the admin guide.
  455   Thu Nov 20 17:55:57 2003 Reply Stefan Rittstefan.ritt@psi.chBug fixLinux2.3.9Re: speed is very slow if logbook contains many entries
I implemented the new scheme where 

- under Windows, the configuration is only checked once every access

- under Unix, the configuration is read initially, and on every -HUP signal

This should speed up the server considerably. The next bottleneck is the 
rsputs2() function, which requires quite some computing power in order to find 
any "http://", "//", etc. strings in every output. If anybody knows a 
more clever way of coding that, please let me know.

The new version is under CVS.
  457   Mon Nov 24 10:25:10 2003 Entry Etienne Van Caillieetienne.vancaillie@mba.beBug fixLinux2.3.9Re: speed is very slow if logbook contains many entries
> I implemented the new scheme where 
> 
> - under Windows, the configuration is only checked once every access
> 
> - under Unix, the configuration is read initially, and on every -HUP signal
> 
> This should speed up the server considerably. The next bottleneck is the 
> rsputs2() function, which requires quite some computing power in order to find 
> any "http://", "//", etc. strings in every output. If anybody knows a 
> more clever way of coding that, please let me know.
> 
> The new version is under CVS.

may be use the logic in the 'format' attribute
like 'email', http, ftp 
so elog will test only on these attributes
  467   Fri Feb 13 12:18:19 2004 Angy Heiko Scheith.scheit@mpi-hd.mpg.de Linux2.5.0segmentation fault
Around line 2240 (in loc()) in elogd.c the following is written, 
which results in an infinite loop, since loc() recursively with
the same argument "Change %s".

   /* special case: "Change %s" */
   if (strstr(orig, "Change ")) {
      sprintf(result, loc("Change %s"), orig + 7);
      return result;
   }

For now I just commented these lines.
  468   Fri Feb 13 12:21:25 2004 Angy Heiko Scheith.scheit@mpi-hd.mpg.de Linux2.5.0elog (not elogd) submit does not work anymore
Somehow elog does not use the -s option (subdir) anymore,
resulting in a 'HTTP/1.1 404 Not Found' error.

For now I am using elog from version 2.3.9 together with elogd v2.5.0,
which seems to work OK.
ELOG V3.1.5-3fb85fa6