[Mongrel] Mongrel and EBADF error consuming resources

Zachary Powell zach at plugthegap.co.uk
Sun May 6 20:15:51 EDT 2007


In the last few weeks I've noticed the load average spiking up for 5
minutes at a time (2-3.5 on a system that usually runs around
0.5-1.5). Looking closer I found that one mongrel process and
litespeed are at the top, and using strace I've found that they're
passing the file below, seems to get stuck on single file/EBADF error.
It happens with a number of different urls, and they're all
caches_page so I don't think it has anything to do with my rails code.
Also, the mongrel process is still usable during this time (I can
request pages from it and the loop below continues uneffected, so its
not one request locking up the process). Any ideas on how I can
straighten this out?

thanks,

Zach

(mongrel (1.0.1, cluster 0.2.0, rails 1.1.16, ruby 1.8.4 on fedora)

read(188, "GET /flower_delivery/florists_in"..., 16384) = 471
close(188)                              = 0
close(188)                              = -1 EBADF (Bad file descriptor)
read(188, "GET /flower_delivery/florists_in"..., 16384) = 471
close(188)                              = 0
close(188)                              = -1 EBADF (Bad file descriptor)
read(188, "GET /flower_delivery/florists_in"..., 16384) = 471
close(188)                              = 0
close(188)                              = -1 EBADF (Bad file descriptor)
read(188, "GET /flower_delivery/florists_in"..., 16384) = 471
close(188)                              = 0
close(188)                              = -1 EBADF (Bad file descriptor)
--- SIGVTALRM (Virtual timer expired) @ 0 (0) ---
read(188, "GET /flower_delivery/florists_in"..., 16384) = 471
close(188)                              = 0
close(188)                              = -1 EBADF (Bad file descriptor)
read(188, "GET /flower_delivery/florists_in"..., 16384) = 471
close(188)                              = 0
close(188)                              = -1 EBADF (Bad file descriptor)
read(188, "GET /flower_delivery/florists_in"..., 16384) = 471
close(188)                              = 0
close(188)                              = -1 EBADF (Bad file descriptor)
read(188, "GET /flower_delivery/florists_in"..., 16384) = 471
close(188)                              = 0
close(188)                              = -1 EBADF (Bad file descriptor)
read(188, "", 16384)                    = 0
close(188)                              = 0
close(188)                              = -1 EBADF (Bad file descriptor)


More information about the Mongrel-users mailing list