[Click] packet pool assertion
Eddie Kohler
kohler at cs.ucla.edu
Wed Oct 5 11:30:49 EDT 2011
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
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
More information about the click
mailing list