bro process would get stuck/freeze with myricom drivers

Description

When I stop bro (in cluster mode), one of the bro worker process (random) would get stuck and wouldn't shutdown, stop or even be killed using kill -s 9.

System has to be ultimately rebooted to remove stuck bro process.
On running myri_start_stop I see:

  1. /usr/local/opt/snf/sbin/myri_start_stop stop
    Removing myri_snf.ko
    kldunload: can't unload file: Device busy

It appears that the myri_snf.ko driver cannot be unloaded because of the stuck bro process. That process still has an open descriptor on the Sniffer device/driver and bro process freezes

More details:

The bro process is stuck in RNE state

R Marks a runnable process.
N The process has reduced CPU scheduling priority (see setpriority(2)).
E The process is trying to exit.

Here is an example:

  1.  

    1.  

      1. stuck process:

[bro@01 ~]$ ps auxwww | fgrep 1616
bro 1616 100.0 0.0 758040 60480 ?? RNE 2:57PM 53:50.04 /usr/local/bro-git/bin/bro -i myri0 -U .status -p broctl -p broctl-live -p local -p worker-1-1 mgr.bro broctl base/frameworks/cluster local-worker.bro broctl/auto

####when checking for process in proc:

[bro@c ~]$ ls -l /proc/1616
ls: /proc/1616: No such file or directory

Environment

OS: FreeBSD 9.3-RELEASE-p5 OS

bro version 2.3-328

git log -1 --format="%H"
379593c7fded0f9791ae71a52dd78a4c9d5a2c1f

Assignee

Robin Sommer

Reporter

Aashish Sharma

Labels

External issue ID

None

Components

Fix versions

Affects versions

Priority

Normal
Configure