mirror of
https://github.com/zeek/zeek.git
synced 2025-10-08 17:48:21 +00:00
Fix attempt for "internal error: unknown msg type 115 in Poll()"
Under remote communication overload conditions, the child->parent chunked IO may start rejecting chunks if over the hard cap. Some messages are made of two chunks, accepting the first part, but rejecting the second can put the parent in a bad state and the next two chunks it reads are likely to cause the error. This patch just removes the rejecting functionality completely and so now relies solely on shutting down remote peer connections to help alleviate temporary overload conditions. The "chunked_io_buffer_soft_cap" script variable can now tune when this shutting down starts happening and the default setting is now double what it used to be. For constant overload conditions, communication.log should keep stating "queue to parent filling up; shutting down heaviest connection". An alternative to completely removing the hard cap rejection code could be ensuring that messages that involve a pair of chunks can never have the second chunk be rejected when attempting to write it. Addresses BIT-1376
This commit is contained in:
parent
8789d7f527
commit
effeaa5b13
6 changed files with 11 additions and 34 deletions
|
@ -3464,7 +3464,8 @@ void SocketComm::Run()
|
|||
int a = select(max_fd + 1, &fd_read, &fd_write, &fd_except, 0);
|
||||
|
||||
if ( selects % 100000 == 0 )
|
||||
Log(fmt("selects=%ld canwrites=%ld", selects, canwrites));
|
||||
Log(fmt("selects=%ld canwrites=%ld pending=%lu",
|
||||
selects, canwrites, io->Stats()->pending));
|
||||
|
||||
if ( a < 0 )
|
||||
// Ignore errors for now.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue