Supervisor/supervisor

[Errno 9] Bad file descriptor

Open

#856 opened on Nov 29, 2016

View on GitHub
 (0 comments) (0 reactions) (0 assignees)Python (1,233 forks)batch import
help wantedlogging

Repository metrics

Stars
 (7,941 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

i'm running supervisord==3.3.1(non-daemon args: -n) under pypy2 5.4.1 . after a moment, supervisor crashed, the log show "Bad file descripter", @mnaberez @mcdonc

os: CentOS release 6.7 (Final) Linux localhost.localdomain 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

supervisord non-daemon log: Traceback (most recent call last): File "/opt/test/pypy2/bin/supervisord", line 11, in sys.exit(main()) File "/opt/test/pypy2/site-packages/supervisor/supervisord.py", line 365, in main go(options) File "/opt/test/pypy2/site-packages/supervisor/supervisord.py", line 375, in go d.main() File "/opt/test/pypy2/site-packages/supervisor/supervisord.py", line 84, in main self.run() File "/opt/test/pypy2/site-packages/supervisor/supervisord.py", line 101, in run self.runforever() File "/opt/test/pypy2/site-packages/supervisor/supervisord.py", line 234, in runforever combined_map[fd].handle_error() File "/opt/test/pypy2/site-packages/supervisor/dispatchers.py", line 50, in handle_error tbinfo File "/opt/test/pypy2/site-packages/supervisor/loggers.py", line 287, in critical self.log(LevelsByName.CRIT, msg, **kw) File "/opt/test/pypy2/site-packages/supervisor/loggers.py", line 293, in log handler.emit(record) File "/opt/test/pypy2/site-packages/supervisor/loggers.py", line 186, in emit self.doRollover() File "/opt/test/pypy2/site-packages/supervisor/loggers.py", line 211, in doRollover if not (self.stream.tell() >= self.maxBytes): IOError: [Errno 9] Bad file descriptor: '/opt/test/var/log/supervisord.log'

strace:

303 log file i checked, it's ok

close(282) = 0 close(285) = 0 close(291) = 0 close(292) = 0 close(303) = -1 EBADF (Bad file descriptor) write(2, "Exception IOError: IOError(9, 'B"..., 195) = 195 close(304) = -1 EBADF (Bad file descriptor) write(2, "Exception IOError: IOError(9, 'B"..., 195) = 195 close(308) = -1 EBADF (Bad file descriptor) write(2, "Exception IOError: IOError(9, 'B"..., 195) = 195 close(309) = -1 EBADF (Bad file descriptor) write(2, "Exception IOError: IOError(9, 'B"..., 195) = 195 close(313) = -1 EBADF (Bad file descriptor)

ulimit: core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 386815 max locked memory (kbytes, -l) 3500000 max memory size (kbytes, -m) unlimited open files (-n) 1000000 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 131072 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited

Contributor guide