[uWSGI] Bad file descriptor after reload

Gennady Karpov gennady.karpov at gmail.com
Mon Oct 28 16:32:47 CET 2013


Hello,

Sometimes, after reload uwsgi, i get a repeating error in log 'kevent(): 
Bad file descriptor [core/event.c line 904]' and cpu usage 200%.

Configuration:

uWSGI 1.9.18.2 on FreeBSD

[uwsgi]
buffer-size = 65535
carbon = 1.2.3.4:2003
carbon-id = test
carbon-no-workers = true
chdir = /home/test/frontend
cheaper = 8
cheaper-algo = busyness
cheaper-busyness-multiplier = 12
cheaper-initial = 16
cheaper-overload = 5
cheaper-step = 4
harakiri = 60
harakiri-verbose = true
master = true
module = frontend.wsgi
no-orphans = true
processes = 256
single-interpreter = true
thunder-lock = true
vacuum = true

Stack trace in gdb:

(gdb) bt
#0  event_queue_wait_multi (eq=524, timeout=1, events=0x802cfa600, 
nevents=1) at core/event.c:899
#1  0x000000000044af0c in uwsgi_stats_pusher_loop (ut=0x802152780) at 
core/stats.c:442
#2  0x0000000000431516 in uwsgi_thread_run (arg=0x802152780) at 
core/utils.c:3613
#3  0x0000000800a61d44 in pthread_getprio () from /lib/libthr.so.3
#4  0x0000000000000000 in ?? ()
(gdb) f 0
#0  event_queue_wait_multi (eq=524, timeout=1, events=0x802cfa600, 
nevents=1) at core/event.c:899
899                     ret = kevent(eq, NULL, 0, (struct kevent *) 
events, nevents, &ts);
(gdb) list
894                     ret = kevent(eq, NULL, 0, events, nevents, NULL);
895             }
896             else {
897                     memset(&ts, 0, sizeof(struct timespec));
898                     ts.tv_sec = timeout;
899                     ret = kevent(eq, NULL, 0, (struct kevent *) 
events, nevents, &ts);
900             }
901
902             if (ret < 0) {
903                     if (errno != EINTR)

Thanks!



More information about the uWSGI mailing list