Ouch! Thanks for this report, Roman. The bug was in the user-level multithreading code, and was a bug in the assertion, not the code. (The lost blocks were lost because the assertion aborted the code.) I believe this is fixed.
Should v2.0.2 be released to address this error...? Eddie On 10/4/11 6:39 PM, rchertov wrote: > The script below causes an assertion in the packet pool cleanup > procedure. Also, if > this script is run in valgrind using options --leak-check=full > --show-reachable=yes, > then the tool detects a lot of lost but reachable blocks. If the queue > size is > set to the default size, then no issues occur. > > q :: Queue(2000); > > src1p0 :: RatedSource(LENGTH 38, RATE 500000, LIMIT 3000, ACTIVE > false) > -> UDPIP6Encap(SRC 2000:10:1::01, SPORT 6667, DST > 2000:20:1::01, DPORT 6667) > -> SetIP6DSCP(0) > -> EtherEncap(0x0800, 00:04:23:D0:93:63, 00:17:cb:0d:f8:01) > -> uq1p0 :: Unqueue > -> q; > > src2p0 :: RatedSource(LENGTH 38, RATE 500000, LIMIT 3000, ACTIVE false) > -> UDPIP6Encap(SRC 2000:10:1::02, SPORT 6667, DST > 2000:20:1::02, DPORT 6667) > -> SetIP6DSCP(0) > -> EtherEncap(0x0800, 00:04:23:D0:93:63, 00:17:cb:0d:f8:02) > -> uq2p0 :: Unqueue > -> q; > > q -> Unqueue > -> total_ctr :: AverageCounter > -> cl :: Classifier(5/01, 5/02); > > cl[0] -> ctr0 :: AverageCounter -> Discard; > cl[1] -> ctr1 :: AverageCounter -> Discard; > > > Script( > wait 2, > write src1p0.active 1, > write src2p0.active 1, > wait 1, > wait 1, > wait 1, > print "Flow 0", > print ctr0.count, > print ctr0.rate, > print "Flow 1", > print ctr1.count, > print ctr1.rate, > print "Total Counter", > print total_ctr.count, > print total_ctr.rate, > ); > > > _______________________________________________ > click mailing list > [email protected] > https://amsterdam.lcs.mit.edu/mailman/listinfo/click _______________________________________________ click mailing list [email protected] https://amsterdam.lcs.mit.edu/mailman/listinfo/click
