Yukihiro Matsumoto
10/5/2008 3:47:00 PM
Hi,
In message "Re: stream closed (IOError)"
on Sun, 5 Oct 2008 23:54:36 +0900, "Eric Will" <rakaur@malkier.net> writes:
|Line 231 is the @socket.close line. Nothing gets done to the socket
|after this, or if it is, it's not getting to it because it crashes on
|@socket.close. Nothing should even be touching the entire object after
|this, because it sets a flag saying "I'm dead, please GC me."
I don't think we can trust line numbers here, maybe due to bugs. The
back trace does not make sense at all.
|/Users/rakaur/Sources/wc/ruby/synapse/trunk/lib/xmppd/xmpp/stream.rb:230:in
|`ioloop': stream closed (IOError)
| from /Users/rakaur/Sources/wc/ruby/synapse/trunk/lib/xmppd.rb:197:in `loop'
| from /Users/rakaur/Sources/wc/ruby/synapse/trunk/lib/xmppd.rb:197:in `ioloop'
| from ./bin/xmppd:20
stream.rb:230 is not within ioloop; xmppd:20 does not call ioloop.
The fact rescue does not catch the exception also suggest the wrong
line numbers. How about stopping using timer library, as a start?
matz.