[Bro-Dev] [JIRA] (BIT-1356) Bro process sticks around after broctl stop

Justin Azoff (JIRA) jira at bro-tracker.atlassian.net
Fri Apr 3 12:43:00 PDT 2015

    [ https://bro-tracker.atlassian.net/browse/BIT-1356?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=20234#comment-20234 ] 

Justin Azoff commented on BIT-1356:

I wonder if that process is just left over from when bro calls system() to run the child process...

I'm not sure what to do about this. killing that process is not the best idea, but there may be a way to wait for it.

I think there is a larger issue here in that log rotation has a number of problems:

* All logs get rotated+compressed at the same time, causing a CPU/IO Storm
* Logs are compressed on the fly to their destination, then the originals are removed
* If compression is not in use, logs are copied and then removed (rather than moved)
* If using something like the sftp handler and sftp fails, nothing is retried.
* Bro is the parent process to all of this.
* If bro crashes logs often end up in a crash directory rather than the proper location.

I think that the only thing bro should be doing is atomically moving the current logs to an archive directory or an archive staging directory. The compression,moving,copying,uploading would be done by an external tool.  There are a number of benefits to this:

* If bro crashes recovering the logs is easy: on startup just move any existing log files to the staging dir.  A bro crash could never result in a partially compressed/rotated log file
* Compression can be done serially or with limited parallelism rather than all at once
* You could even delay the compression to idle periods
* Bugs like this would not occur since stopping bro would just require the logs to be moved, not compressed

> Bro process sticks around after broctl stop
> -------------------------------------------
>                 Key: BIT-1356
>                 URL: https://bro-tracker.atlassian.net/browse/BIT-1356
>             Project: Bro Issue Tracker
>          Issue Type: Problem
>          Components: BroControl
>    Affects Versions: git/master
>            Reporter: Johanna Amann
>            Assignee: Daniel Thayer
>             Fix For: 2.4
> It seems that after running a "broctl stop" not all bro processes are killed immediately. On our cluster, one of the processes keeps running; I seems like it eventually terminates after all log-compression is done. Is that on purpose or is that a bug?
> Ps output  (on the node running the manager, bro process in first line, including the running compression jobs for completeness):
> {code}
> $ ps -ax | grep bro
> 23353  -  IN       20:06.96 /xa/bro/master/bin/bro -U .status -p broctl -p broctl-live -p local -p manager local.bro broctl base/frameworks/cluster local-manager.bro broctl/auto
> 24979  -  I         0:00.01 bash /xa/bro/master/share/broctl/scripts/archive-log http.2015-03-25-14-40-30.log http 15-03-25_14.40.30 15-03-25_16.29.29 1 ascii
> 25047  -  I         0:00.01 bash /xa/bro/master/share/broctl/scripts/archive-log conn.2015-03-25-14-40-30.log conn 15-03-25_14.40.30 15-03-25_16.29.29 1 ascii
> 25841  -  S         0:00.59 bash /xa/bro/master/share/broctl/scripts/post-terminate /xa/bro/master/spool/manager
> 29204  0  D+        0:00.00 grep bro
> {code}

This message was sent by Atlassian JIRA

More information about the bro-dev mailing list