Jon Siwek created BIT-1376: ------------------------------ Summary: method to reproduce "internal error: unknown msg type 115 in Poll()" Key: BIT-1376 URL: https://bro-tracker.atlassian.net/browse/BIT-1376 Project: Bro Issue Tracker Issue Type: Problem Components: Bro Reporter: Jon Siwek
Justin found a modification to Bro and a script that triggers the "unknown msg type 115" bug. This method seems to reproduce the problem fairly reliably and between two bro processes started via command-line. Patch: {code} diff --git a/src/ChunkedIO.h b/src/ChunkedIO.h index b590453..39af9b1 100644 --- a/src/ChunkedIO.h +++ b/src/ChunkedIO.h @@ -223,10 +223,10 @@ private: // We report that we're filling up when there are more than this number // of pending chunks. - static const uint32 MAX_BUFFERED_CHUNKS_SOFT = 400000; + static const uint32 MAX_BUFFERED_CHUNKS_SOFT = 40; // Maximum number of chunks we store in memory before rejecting writes. - static const uint32 MAX_BUFFERED_CHUNKS = 500000; + static const uint32 MAX_BUFFERED_CHUNKS = 50; char* read_buffer; uint32 read_len; {code} Start a bro process like this: {code} $ cat test.bro @load frameworks/communication/listen redef Communication::nodes += { ["foo"] = [$host = 127.0.0.1, $sync=T] }; global counters: table[string] of count &synchronized &default=0; event do_some (n:count) { ++counters["thecounter"]; ++counters["thecounter"]; ++counters["thecounter"]; ++counters["thecounter"]; ++counters["thecounter"]; ++counters["thecounter"]; ++counters["thecounter"]; ++counters["thecounter"]; ++counters["thecounter"]; ++counters["thecounter"]; ++counters["thecounter"]; ++counters["thecounter"]; ++counters["thecounter"]; ++counters["thecounter"]; ++counters["thecounter"]; ++counters["thecounter"]; ++counters["thecounter"]; ++counters["thecounter"]; ++counters["thecounter"]; ++counters["thecounter"]; ++counters[peer_description]; if(counters["thecounter"] % 10000 == 0 ) { Reporter::warning(fmt("I am %s and The counter is %d. my counter is %d", peer_description, counters["thecounter"], counters[peer_description])); } if(n != 0) { schedule 1msec { do_some(n-1) }; } else { Reporter::warning(fmt("The counter is %d", counters["thecounter"])); } } event bro_init() { schedule 1sec { do_some(1000000) }; schedule 2sec { do_some(1000000) }; schedule 3sec { do_some(1000000) }; } $ bro -b ./test.bro {code} Then start another like this: {code} $ cat test.bro @load base/frameworks/communication redef Communication::nodes += { ["foo"] = [$host = 127.0.0.1, $events = /.*/, $connect=T, $sync=T, $retry=5sec] }; global counters: table[string] of count &synchronized &default=0; event check () { print counters["thecounter"]; schedule 5sec { check() }; } event bro_init() { schedule 5sec { check() }; } $ bro -b ./test.bro processing suspended processing continued 55069 58963 62831 66636 internal error: unknown msg type 115 in Poll() Abort trap: 6 {code} -- This message was sent by Atlassian JIRA (v6.4-OD-16-006#64014) _______________________________________________ bro-dev mailing list bro-dev@bro.org http://mailman.icsi.berkeley.edu/mailman/listinfo/bro-dev