From: Roger Pack Date: 2010-04-16T05:26:50+09:00 Subject: Re: Backtrace hopping between threads ? > F, [2010-04-14T14:19:11.039347 #28597] FATAL -- : can't clone NilClass > (SystemExit) > /usr/lib/ruby/1.8/rexml/text.rb:311:in `recvfrom' ... > Another Thread in the program is processing XMPP messages, that's the > only code path that would use REXML, so I assume there is a bug in that > part of the code, somehow the backtrace pops out in another Thread, and > I've lost the original context. > > I don't have Thread.abort_on_exception set. > > Is this a backtrace that appears to "cross threads" or is there some > legitimate reason a socket I/O call could call REXML? This is on > Debian/lenny's ruby, 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux]. In Ruby, if the main thread exits "the whole program exits" before "the whole program exits", though, it raises this exception on each still running thread. Kind of like "get ready to die." I think that's the way it is, anyway, and I'm pretty sure the program still terminates if the threads rescue that exception, which makes me wonder how that all works exactly, but HTH. -rp -- Posted via http://www.ruby-forum.com/.