Yeah, the code is definitely wrong in webInterface.c around lines 143:

void showPluginsList(char* pluginName) {}

If you trace the handling of newPluginStatus you will see it's initially set
to 0 (disabled) and then only reset if there is an = in the processed URL.

If there is a flow that references a given plugin (and rrd has one), then it
will go into the while {} loop at 166 and end up activating/deactivating the
plugin.

The root cause (and thus the correct fix) is to split the handling of
CONST_SHOW_PLUGINS_HTML into a separate CONST_XACTIVATE_PLUGIN_HTML and then
split showPluginsList().


http.c:631:                  "
[null,'%sctivate','/" CONST_SHOW_PLUGINS_HTML "?%s=%d',null,null],\n",
http.c:669:                  "                          [null,'Describe','/"
CONST_SHOW_PLUGINS_HTML "?%s',null,null],\n"


showPluginsList() should drop the lines in the entire if at 170 (except
maybe the safe_sprintf at 187).

xactivatePluginsList() is trickier.  (1) It should only accept a single
plugin name as it's argument.  Not zero and not two or more.  (2) After it
runs it should then invoke showPluginsList() with a null argument to present
the user with the entire (updated) list.

I just don't have the time to do the fix.


OK, Gang, when I talked about having less time to work on ntop, this is what
I meant.  I've done the first piece of the analysis - pointed you at the
code... Now somebody needs to step up and make the change, test it and send
on the patch...


-----Burton



-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
Of [EMAIL PROTECTED]
Sent: Tuesday, May 30, 2006 12:52 AM
To: [email protected]
Subject: [ntop-dev] bug in rrd plugin menu behaviour

Hello list, and Luca,

Ntop has been running rock solid for me for the past year or so, with the
occasional reboot when upgrading the kernel and the tv tuner going beserk
and freezing the system, but today a weird thing happened:

i decided to explore the interface to see what is new around there, and i
selected from the Plugins menu, Round-robin-databases -> the Describe
option...

But, instead of some explanatory text, it turned OFF the RRD plugin hard....
errors started to appear in the log

It doesn't crash, because the web interface is still responsive, so i don't
think a gdb run will help much, it just kills off the rrd plugin.

ntop is latest version from cvs (ok..yesterday's cvs, but there haven't been
any announcements from Luca today so far)..more details after the main bug
info

this appears in the log concerning the rrd when i select the Describe option
in the menu:

May 30 08:15:18 ccsfn ntop[2539]:   RRD: Shutting down, locking mutex 
(may block for a little while)
May 30 08:15:18 ccsfn ntop[2539]:   RRD: Locked mutex, continuing shutdown
May 30 08:15:18 ccsfn ntop[2539]:   THREADMGMT[t3033402288]: RRD: 
killThread(rrdThread) succeeded
May 30 08:15:18 ccsfn ntop[2539]:   THREADMGMT[t3033402288]: RRD: 
killThread(rrdTrafficThread) succeeded
May 30 08:15:18 ccsfn ntop[2539]:   THREADMGMT[t3033402288]: RRD: Plugin 
shutdown continuing
May 30 08:15:18 ccsfn ntop[2539]:   RRD: Thanks for using the rrdPlugin
May 30 08:15:18 ccsfn ntop[2539]:   RRD: Done

yup..i selected "Describe", NOT TURN OFF PLUGIN!

and then right after:

May 30 08:15:26 ccsfn ntop[2539]:   **WARNING** RRD: (null), error 13 
Permission denied
May 30 08:15:26 ccsfn ntop[2539]:   **WARNING** RRD: (null)/interfaces, 
error 2 No such file or directory
May 30 08:15:26 ccsfn ntop[2539]:   **WARNING** RRD: 
(null)/interfaces/eth1, error 2 No such file or directory
May 30 08:15:26 ccsfn ntop[2539]:   **WARNING** RRD: 
mkdir((null)/interfaces/eth1/), error 2 No such file or directory
May 30 08:15:26 ccsfn ntop[2539]:   **ERROR** accessMutex() called 
'rrd_create' with an UN-INITIALIZED mutex [t2999974832 m0xb 0db20
@rrdPlugin.c:1253]
May 30 08:15:26 ccsfn ntop[2539]:   **WARNING** RRD: 
rrd_create((null)/interfaces/eth1/throughput.rrd) error: creating '(null)
/interfaces/eth1/throughput.rrd': No such file or directory
May 30 08:15:26 ccsfn ntop[2539]:   **ERROR** releaseMutex() called with 
an UN-INITIALIZED mutex [t2999974832 m0xb0db20 @rrdPl ugin.c:1271]
May 30 08:15:26 ccsfn ntop[2539]:   **ERROR** accessMutex() called 
'rrd_update' with an UN-INITIALIZED mutex [t2999974832 m0xb 0db20
@rrdPlugin.c:1303]
May 30 08:15:26 ccsfn ntop[2539]:   **WARNING** RRD: 
rrd_update((null)/interfaces/eth1/throughput.rrd) error: opening '(null)/
interfaces/eth1/throughput.rrd': No such file or directory
May 30 08:15:26 ccsfn ntop[2539]:   **ERROR** releaseMutex() called with 
an UN-INITIALIZED mutex [t2999974832 m0xb0db20 @rrdPl ugin.c:1354]
May 30 08:15:29 ccsfn ntop[2539]:   **WARNING** RRD: (null), error 13 
Permission denied
May 30 08:15:29 ccsfn ntop[2539]:   **WARNING** RRD: (null)/interfaces, 
error 2 No such file or directory

and so on... tons of this stuff..  i had to kill the ntop process and
re-start.


more ntop extensive information:

ntop Version.....3.2.2
Configured on.....May 29 2006 17:16:06
Built on.....May 29 2006 17:19:34
OS.....i686-redhat-linux-gnu
libpcap version.....libpcap version 0.8.3
Running from...../var/ntop/bin
Libraries in...../var/ntop/lib
Library path.....(nil)
ntop Process Id.....2640
http Process Id.....2640
Run State.....Run


Started as........./var/ntop/bin/ntop -n -e 512 -d -4 -M -m 
192.168.2.0/24 -i eth1 -u ntop -w 1083 -Q /var/ntop/ntop_data -P 
/var/ntop/ntop_data -O /var/ntop/ntop_data/logs -a 
/var/ntop/ntop_data/logs/access.log
Resolved to........./var/ntop/bin/ntop -n -e 512 -d -4 -M -m 
192.168.2.0/24 -i eth1 -u ntop -w 1083 -Q /var/ntop/ntop_data -P 
/var/ntop/ntop_data -O /var/ntop/ntop_data/logs -a 
/var/ntop/ntop_data/logs/access.log

GDBM version.....This is GDBM version 1.8.0, as of May 19, 1999.
zlib version.....1.2.2.2
gd version (guess).....2.0.21+
Protocol Decoders.....Enabled
Fragment Handling.....Enabled
Tracking only local hosts.....No
# IP Protocols Being Monitored.....20
# Protocol slots.....978
# IP Ports Being Monitored.....177
# IP Ports slots.....354
WebServer Request Queue.....10
Devices (Network Interfaces).....1
Domain name (short).....(nil)
IP to country flag table (entries).....52395
Total Hash Collisions (Vendor/Special) (lookup).....0
Database (MySQL) Support Enabled.....No


./configure parameters.....--prefix=/var/ntop 
--enable-dependency-tracking --without-ssl --disable-ssl 
--enable-largerrdpop --enable-jumbo-frames + configureextra/LINUXfedora
Built on (Host).....i686-redhat-linux-gnu
Built for(Target).....i686-redhat-linux-gnu
preprocessor (CPPFLAGS).....gcc -E -DLINUX -I/usr/include/glib-1.2 
-I/usr/lib/glib/include -I/usr/local/include -I/usr/include/mysql 
-I/usr/local/mysql/include 
-I/kituri/linux/ccstm_new/packages/ntop/ntop/myrrd
compiler (CFLAGS).....gcc -g -O2 -I/usr/local/include -Wshadow 
-Wpointer-arith -Wmissing-prototypes -Wmissing-declarations 
-Wnested-externs -fPIC -DPIC -I/usr/include/mysql 
-I/usr/local/mysql/include -DHAVE_CONFIG_H
include path.....-I/kituri/linux/ccstm_new/packages/ntop/ntop/myrrd
system libraries.....-lglib -L/usr/local/lib -L/usr/lib/mysql 
-L/usr/local/mysql/lib 
-L/kituri/linux/ccstm_new/packages/ntop/ntop/myrrd -lxml2 -lglib 
-lpthread -lcrypt -lc -lresolv -lnsl -lpcap -lgdbm -lgd -lpng -lz -lmyrrd
install path...../var/ntop
GNU C (gcc) version.....4.0.2 20051125 (Red Hat 4.0.2-8) (4.0.2)
uname data.....sysname(Linux) release(2.6.16-1.2111_FC4) version(#1 Sat 
May 20 19:59:40 EDT 2006) machine(i686)


Please look into this.
Adrian.

_______________________________________________
Ntop-dev mailing list
[email protected]
http://listgateway.unipi.it/mailman/listinfo/ntop-dev

_______________________________________________
Ntop-dev mailing list
[email protected]
http://listgateway.unipi.it/mailman/listinfo/ntop-dev

Reply via email to