Closed gf3 closed 11 years ago
Seems kind of odd: the core Ruby TCPSocket#gets
method seems to have the same semantics as far as returning nil on close.
Perhaps I should look elsewhere in the Redis driver for how this is handled
Looks like the redis-rb ruby driver actually swaps in its own implementation of gets in Redis::Connection::SocketMixin
. As far as I can see it changes the semantics ofTCPSocket#gets
to never return nil, instead raising Errno::ECONNRESET
on end of file.
I recall seeing errors like that @gf3 describes when running the redis-rb test suite on jruby against my own attempt a celluloid driver recently. Will try to reproduce and get a patch in.
@gf3 can you confirm this is fixed by #5? If so I can spin a new gem
Sure, I can give it a shot. Might take some time to show up in the logs as I'm not sure what triggered it.
It seems to be resolved. I haven't seen the error in a few days.
Cool, will spin a new gem.
This should be fixed in 0.0.2.
Seeing this come up occasionally in my logs.
I've gist'd the full stack trace and the method from closest ancestor of my code. It looks like Celluloid might need to do a
nil
check in Redis::Connection::Celluloid#read—I'm not entirely familiar with what's expected from redis, though.