[Bro-Dev] [JIRA] (BIT-1376) method to reproduce "internal error: unknown msg type 115 in Poll()"
Jon Siwek (JIRA)
jira at bro-tracker.atlassian.net
Thu Apr 16 08:43:00 PDT 2015
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)
More information about the bro-dev
mailing list