racluster segv reading argus v2 file

Mike Iglesias iglesias at uci.edu
Wed Mar 11 14:07:42 EDT 2009


Carter Bullard wrote:
> Hey Mike,
> Thanks for the report, this is very useful for fixing bugs!!!!
> 
> In gdb(), at the prompt where it dies, we need to test what
> is generating the segfault, which seems to be the value of
> "net", which is probably zero, or something very low.  So
> where the program dies, in gdb, type:
> 
> (gdb) print net

(gdb) print net
$1 = (struct ArgusNetworkStruct *) 0x0

> 
> A few things.  Your racluster.conf file is really a rarc file.
> You are using it correctly by specifying using the '-F' option,
> but this is not an aggregation configuration.  An example of
> that is in ./support/Config/racluster.conf, and its feed to
> racluster using the '-f' option.

I probably should have named the racluster.conf file something like
ragator.conf to avoid confusion.  I'm not going to use any of the racluster
filtering stuff that goes in racluster.conf, assuming the default for -m stays
the 5-tuple.

> 
> The -A option is not a useful option for racluster().

And -A is causing the seg fault.!  When I run racluster without it, it runs
ok.  With it, it segfaults.

> 
> 
> This fix for this is really simple.  Insert these lines in the routine
> ArgusProcessTCPAvailability() in the file, ./common/argus_client.c,
> just after the variable declarations:
> 
>    if (net == NULL)
>       return retn;

I did that, and using -A caused another seg fault in
ArgusProcessServiceAvailability because flow is null.  I fixed that one in a
similar way, although I wasn't sure if it should go before or after this line

   argus->status &= ~(RA_SVCPASSED | RA_SVCFAILED);

so I put it after that line.


-- 
Mike Iglesias                          Email:       iglesias at uci.edu
University of California, Irvine       phone:       949-824-6926
Network & Academic Computing Services  FAX:         949-824-2270




More information about the argus mailing list