rasort unhappiness

Carter Bullard carter at qosient.com
Wed May 30 22:23:52 EDT 2001


Hey Peter,
   Yes, this points directly to the problem.  Basically,
if the array gets completely full, we'll search the queue
for a very very very long time looking for an empty slot.
This isn't right, so I'll fix it in the new client release.
I'll try to have a fix for tomorrow.

Carter

Carter Bullard
QoSient, LLC
300 E. 56th Street, Suite 18K
New York, New York  10022

carter at qosient.com
Phone +1 212 588-9133
Fax   +1 212 588-9134
http://qosient.com 

-----Original Message-----
From: owner-argus-info at lists.andrew.cmu.edu
[mailto:owner-argus-info at lists.andrew.cmu.edu] On Behalf Of Peter Van
Epp
Sent: Wednesday, May 30, 2001 8:26 PM
To: argus
Subject: rasort unhappiness


	Although its not obvious to me why its unhappy (and its time to
go
home) it appears to be looping around here. The queue seems to have a
value (if rather far apart) so its not immediately clear why it doesn't
get past here (although it always stops in this same file a couple of
hundred megs in to the files). Perhaps this snippet will tell Carter
something ...


Starting program: /usr/local/bin/rasort -r *  -s dstaddr -s dport -s
srcaddr -n ^C Program received signal SIGINT, Interrupt. 0x804a479 in
RaAddToQueue (queue=0x815c540, obj=0x1955f720) at ./rasort.c:728
728              if (queue->tail == queue->size)
(gdb) step
730           }
(gdb) 
727              queue->tail++;
(gdb) 
728              if (queue->tail == queue->size)
(gdb) 
730           }
(gdb) 
727              queue->tail++;
(gdb) 
728              if (queue->tail == queue->size)
(gdb) 
730           }
(gdb) 
727              queue->tail++;
(gdb) 
728              if (queue->tail == queue->size)
(gdb) 
730           }
(gdb) 
727              queue->tail++;
(gdb) 
728              if (queue->tail == queue->size)
(gdb) print queue->tail
$1 = 496328
(gdb) print queue->size
$2 = 1048576
(gdb) l 730
725
726           while (queue->array[queue->tail] != NULL) {
727              queue->tail++;
728              if (queue->tail == queue->size)
729                 queue->tail = 0;
730           }
731        }
732
733     #ifdef ARGUSDEBUG
734        ArgusDebug (6, "RaAddToQueue (0x%x, 0x%x) returning\n",
queue, obj);
(gdb) where
#0  RaAddToQueue (queue=0x815c540, obj=0x1955f720) at ./rasort.c:728 #1
0x8049c10 in RaProcessRecord (argus=0xbfbfd2ec) at ./rasort.c:265 #2
0x8049c91 in process_tcp (argus=0xbfbfd2ec) at ./rasort.c:294 #3
0x804d329 in ArgusProcessRecord (ptr=0xbfbfd2ec) at ./argus_parse.c:1756
#4  0x804b7a3 in ArgusHandleDatum (ptr=0x8169000, filter=0x806c3b0)
    at ./argus_parse.c:668
#5  0x804cc18 in ArgusReadStreamSocket (input=0x8151e00)
    at ./argus_parse.c:1475
#6  0x804d0e7 in ArgusReadStream () at ./argus_parse.c:1677
#7  0x804b46a in main (argc=153, argv=0xbfbfe90c) at ./argus_parse.c:531
#8  0x80496f9 in _start ()

Peter Van Epp / Operations and Technical Support 
Simon Fraser University, Burnaby, B.C. Canada



More information about the argus mailing list