Open alexkwolfe opened 12 years ago
Any comments on this?
@jsaak has taken over maintenance duties recently. @jsaak want to have a look?
I now have the same issue, which causes em-mongo to silently fail without any indication that it failed.
It seems that all other database commands just don't execute too, since callbacks and errbacks don't get executed.
This is a serious problem, where something needs to be done. I'll try to fix it when time allows it.
Note that this does only occur when the connections don't stay open long enough to experience the timeout before they end again.
My understanding is that when
EM::Mongo::Connection
is instantiated with thetimeout
parameter that an error should be raised if a connection cannot be established in that time. It looks like that's not happening.Looking at the initializer for Connection confirms that the errback should raise the "failure with mongodb server..." error. The errback is never called, though. The reason is that the timeout timer is cancelled when the connection's unbind method calls
set_deferred_status(nil)
. So the timeout timer never fires.You can confirm the problem by stopping your mongod process and running the following code. I think it should raise an error, but it does not.
It's not obvious to me how, exactly, to fix this. Any suggestions?