[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