I would try building a debugging perl (i.e. with Configure option -Doptimize=-g
), and make sure you can dump core files (check that ulimit -c
is large enough, preferably unlimited
Then run your server under the debugging perl. When it segfaults and dumps core, open up the core file in gdb (gdb -c core) and do a backtrace (bt) to see where it's crashing.
Until you know where the crash is coming from, you're a bit stuck. (Like others here, I'm inclined to doubt that the problem is with IO::Socket or IO::Select, because those modules are both widely used and well-tested, but it's not impossible.)