DoS by spawning hanging byobu-status processes
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
byobu |
Fix Released
|
High
|
Dustin Kirkland | ||
Fedora |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
When I run byobu-tmux, after a minute or so the kernel reports:
bash: fork: retry: Resource temporarily unavailable
and nothing more than finishing byobu can be done (as no command can be run).
Looking at the process list reveals something like:
myuser 27821 12220 0 06:14 pts/0 00:00:00 tmux -2 -f /opt/byobu/
myuser 27842 1 0 06:14 ? 00:00:00 tmux -2 -f /opt/byobu/
myuser 27843 27842 0 06:14 /root/dev/pts/1 00:00:00 /bin/bash
myuser 27845 27842 0 06:14 ? 00:00:00 /bin/sh /opt/byobu/
myuser 27846 27842 0 06:14 ? 00:00:00 /bin/sh /opt/byobu/
myuser 27852 27845 0 06:14 ? 00:00:00 tmux set -g status-left-length 52
myuser 27857 27846 0 06:14 ? 00:00:00 tmux set -g status-left-length 52
myuser 27896 27842 0 06:14 ? 00:00:00 /bin/sh /opt/byobu/
myuser 27897 27842 0 06:14 ? 00:00:00 /bin/sh /opt/byobu/
myuser 27900 27897 0 06:14 ? 00:00:00 tmux set -g status-left-length 52
myuser 27901 27896 0 06:14 ? 00:00:00 tmux set -g status-left-length 52
myuser 27949 27842 0 06:14 ? 00:00:00 /bin/sh /opt/byobu/
myuser 27950 27842 0 06:14 ? 00:00:00 /bin/sh /opt/byobu/
myuser 27953 27949 0 06:14 ? 00:00:00 tmux set -g status-left-length 52
myuser 27954 27950 0 06:14 ? 00:00:00 tmux set -g status-left-length 52
myuser 27971 27842 0 06:14 ? 00:00:00 /bin/sh /opt/byobu/
myuser 27972 27842 0 06:14 ? 00:00:00 /bin/sh /opt/byobu/
myuser 27975 27972 0 06:14 ? 00:00:00 tmux set -g status-left-length 52
myuser 27976 27971 0 06:14 ? 00:00:00 tmux set -g status-left-length 52
as so on with "byobu-status" and "tmux set" processes being added every second.
Also, as a result, the status line is not being displayed.
I checked every released version since 4.55, and the problem appears only in 5.18.
Tested under bluehost shared server
byobu: 5.18
tmux: 1.6
bash: 4.1.2(1)-release (x86_64-
Changed in fedora: | |
status: | New → Confirmed |
Changed in byobu: | |
status: | Fix Committed → Fix Released |
Hi, thanks for the report.
I've seen this from time to time on heavily multi-user, shared servers such as bluehost.
Can you try backing your status interval off? The default is *very* aggressive (1 second). Perhaps you need something a little more generous in your environment.
Try adding:
set -g status-interval 15
to ~/.byobu/.tmux.conf