[#24105] [Bug #1711] Marshal Failing to Round-Trip Certain Recurisve Data Structures — Run Paint Run Run <redmine@...>

Bug #1711: Marshal Failing to Round-Trip Certain Recurisve Data Structures

9 messages 2009/07/01

[#24116] [Bug #1715] Numeric#arg for NaN is Inconsistent Across Versions — Run Paint Run Run <redmine@...>

Bug #1715: Numeric#arg for NaN is Inconsistent Across Versions

10 messages 2009/07/02

[#24240] [Bug #1755] IO#reopen Doesn't Fully Associate with Given Stream on 1.9; Ignores pos on 1.8 — Run Paint Run Run <redmine@...>

Bug #1755: IO#reopen Doesn't Fully Associate with Given Stream on 1.9; Ignores pos on 1.8

8 messages 2009/07/09

[#24321] [Bug #1773] Gem path doesn't honor user gem? — Lin Jen-Shin <redmine@...>

Bug #1773: Gem path doesn't honor user gem?

12 messages 2009/07/14

[#24390] [Feature #1784] More encoding (Big5 series) support? — Lin Jen-Shin <redmine@...>

Feature #1784: More encoding (Big5 series) support?

12 messages 2009/07/16

[#24467] Re: [ruby-cvs:31226] Ruby:r24008 (ruby_1_8_6): Removed private on to_date and to_datetime. — Urabe Shyouhei <shyouhei@...>

Hello.

10 messages 2009/07/21

[#24472] [Feature #1800] rubygems can replace system executable files — Kazuhiro NISHIYAMA <redmine@...>

Feature #1800: rubygems can replace system executable files

13 messages 2009/07/21

[#24530] [Feature #1811] Default BasicSocket.do_not_reverse_lookup to true — Roger Pack <redmine@...>

Feature #1811: Default BasicSocket.do_not_reverse_lookup to true

9 messages 2009/07/23

[#24624] [Bug #1844] Immediates Should Not Respond to :dup — Run Paint Run Run <redmine@...>

Bug #1844: Immediates Should Not Respond to :dup

15 messages 2009/07/30

[ruby-core:24247] RCR: BasicSocket.do_not_reverse_lookup = true by default.

From: Roger Pack <rogerdpack@...>
Date: 2009-07-10 04:41:51 UTC
List: ruby-core #24247
Currently ruby socket code defaults to always doing reverse DNS lookup
when it can [ex: once per incoming UDP packet, once per TCP connection].
This causes "surprising" pauses whenever lookup fails, because the DNS
waits 15s to timeout, before passing the packet back to the program,
since the pause is unexpected.

example of this: http://betterlogic.com/roger/?p=1646
comment out the do_not_reverse_lookup=true line on the receiver and change the
sender to send to IP127.0.0.255

It works great [no pause] if you set BasicSocket.do_not_reverse_lookup to
true, and is much less surprising.  This example isn't the first time I've been
bit by ruby's internal  reverse lookups and they still surprise me, so
thought I'd suggest it.  Feedback from ruby-talk on the subject was
positive [1].

The other benefit is that, with DNS lookups, sometimes they succeed, and
sometimes fail, which means that normal code could run into unexpected
pauses when put into production--which is surprising and unwanted,
really.

It also causes surprises when going from platform to platform [2], and
results in increased network traffic.

The followup thought would be that to rename it
BasicSocket.reverse_lookup = true would be good to avoid having to use
the double negative, but that is purely optional--having both might be
better.

Thoughts?
=r

[1] http://www.ruby-forum.com/topic/190013#new
[2] http://www.ruby-forum.com/topic/191022#833168

In This Thread

Prev Next