Conversation
41baf12 to
173e580
Compare
seki
left a comment
There was a problem hiding this comment.
Besides this, I want an API that explicitly closes the connection pool
|
The CI failures appear to be related to timeouts. It doesn't appear to be failing in these tests, so I'm not sure exactly what is causing the timeouts. I'm going to try applying the patches one at a time to see if I can narrow down a possible cause. |
Also fix a bug in rescue clause of any_to_s because sprintf does not handle the %l modifier. Fixes [Bug ruby#7833]
This associates each DRbConn with a pid, and if the pid changes, it closes any DRbConns in the pool with a pid that no longer matches. This fixes DRb servers from sending messages intended for one client to another client after forking. Fixes [Bug ruby#2718] Fixes [Bug ruby#14471]
This allows for normal TCP shutdown (fin-ack-fin-ack instead of fin-ack-push-rst). Patch from [email protected] (Pierre-Alexandre Meyer). Fixes [Bug ruby#2339]
| else | ||
| klass = Kernel.instance_method(:class).bind(obj).call | ||
| end | ||
| sprintf("#<%s:0x%dx>", klass, obj.__id__) |
There was a problem hiding this comment.
"#<%s:0x%dx>" is still incorrect. %d stands for decimal (and the x is just a literal x) but it seems hexadecimal is the intended conversion here: "#<%s:0x%x>" or even "#<%s:%#x>".
This method seems to based on pre-1.9 rb_any_to_s() (e.g. see the l modifier that C has for long) but it works differently even though it looks similar. However rb_any_to_s() is also the implementation of Kernel#to_s. Any reason not to just bind+call it like other standard libraries do?
This fixes Ruby bugs 8039, 5618, 2339, 2718, 14471, and 7833.