Hello, I just got this backtrace and don't understand something about
it:

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'
/usr/lib/mauvealert/lib/mauve/server.rb:158:in `receive_waiting_packets'
/usr/lib/mauvealert/lib/mauve/server.rb:104:in `run'
/usr/lib/mauvealert/lib/mauve/server.rb:91:in `loop'
/usr/lib/mauvealert/lib/mauve/server.rb:91:in `run'
/usr/lib/mauvealert/bin/mauveserver:32
/usr/lib/mauvealert/bin/mauveserver:30:in `loop'
/usr/lib/mauvealert/bin/mauveserver:30
/usr/lib/mauvealert/mauve_starter.rb:22:in `load'
/usr/lib/mauvealert/mauve_starter.rb:22

Rather, I understand the exception, the line in server.rb:158 is this:

          packets = [@socket.recvfrom(65535)]

@socket is just a UDPServer socket, and I'm wanting to read raw data.
So I don't understand how the backtrace includes a call to REXML.

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].

-- 
Matthew