> I've realized that on slow PCs used to monitor many hosts, the purging > process can take quite some time. I have made the following two changes: > 1. hosts with pending TCP sessions are purged later > 2. I have moved a semaphore that locks the web interface during the > second part of the purge. > > 1. should be fine. 2. may cause trouble (I can;t remember why the > semaphore was there). Bottom line: ntop works for me, but if you > expeirnce crashes you need to let us know because probably 2. can cause > the crash.
It was there because you used to run with the fork() call in http.c turned off since it was such a pig on (?)Solaris. If you don't fork, then you MUST protect the ntop data structures or else the walk to produce the http output could hit a host in the middle of purge and bomb. With Linux, the fork() is implemented via a copy-on-write method and there's almost zero cost. Since the fork()ed child has a static copy, it's safe even if the mutex/semaphore isn't set unless the fork() occurs in the exact middle of the purge. If we want to make the fork() assumption manditory (i.e. drop the PARM_FORK_CHILD_PROCESS parameter), you could change the protected section to just block at the fork() with the access/release calls surounding each individual purged host. -----Burton _______________________________________________ Ntop-dev mailing list [EMAIL PROTECTED] http://listgateway.unipi.it/mailman/listinfo/ntop-dev
