[#69892] [Ruby trunk - Feature #11339] [Open] [PATCH] io.c: avoid kwarg parsing in C API — normalperson@...
Issue #11339 has been reported by Eric Wong.
8 messages
2015/07/07
[#69983] Re: [Ruby trunk - Feature #11339] [Open] [PATCH] io.c: avoid kwarg parsing in C API
— Eric Wong <normalperson@...>
2015/07/15
normalperson@yhbt.net wrote:
[#69990] Re: [Ruby trunk - Feature #11339] [Open] [PATCH] io.c: avoid kwarg parsing in C API
— SASADA Koichi <ko1@...>
2015/07/16
On 2015/07/16 4:41, Eric Wong wrote:
[#69995] Re: [Ruby trunk - Feature #11339] [Open] [PATCH] io.c: avoid kwarg parsing in C API
— Eric Wong <normalperson@...>
2015/07/16
SASADA Koichi <ko1@atdot.net> wrote:
[#69984] $SAFE inside an Array — Bertram Scharpf <lists@...>
Hi,
4 messages
2015/07/15
[#70001] [Ruby trunk - Bug #11336] [Open] TestProcess#test_exec_fd_3_redirect failed on Solaris 10 — ngotogenome@...
Issue #11336 has been updated by Naohisa Goto.
4 messages
2015/07/16
[#70005] Re: [Ruby trunk - Bug #11336] [Open] TestProcess#test_exec_fd_3_redirect failed on Solaris 10
— Eric Wong <normalperson@...>
2015/07/16
Sorry, but I think rb_divert_reserved_fd seems a racy fix. I think the
[#70011] [Ruby trunk - Bug #11362] [Open] [PATCH] ensure Process.kill(:STOP, $$) is resumable — normalperson@...
Issue #11362 has been reported by Eric Wong.
3 messages
2015/07/17
[#70016] [Ruby trunk - Bug #11364] [Open] Use smaller buffer for sendmsg — merch-redmine@...
Issue #11364 has been reported by Jeremy Evans.
8 messages
2015/07/17
[#70052] Re: [Ruby trunk - Bug #11364] [Open] Use smaller buffer for sendmsg
— Eric Wong <normalperson@...>
2015/07/20
merch-redmine@jeremyevans.net wrote:
[#70055] Re: [Ruby trunk - Bug #11364] [Open] Use smaller buffer for sendmsg
— Jeremy Evans <code@...>
2015/07/20
On 07/20 10:46, Eric Wong wrote:
[#70056] Re: [Ruby trunk - Bug #11364] [Open] Use smaller buffer for sendmsg
— Eric Wong <normalperson@...>
2015/07/21
Jeremy Evans <code@jeremyevans.net> wrote:
[#70103] [Ruby trunk - Feature #11375] Decreased Object Allocation in Pathname.rb — richard.schneeman@...
Issue #11375 has been updated by Richard Schneeman.
3 messages
2015/07/23
[#70156] [Ruby trunk - Bug #11396] Bad performance in ruby >= 2.2 for Hash with many symbol keys — dunric29a@...
Issue #11396 has been updated by David Unric.
3 messages
2015/07/28
[ruby-core:70058] Re: [Ruby trunk - Bug #11364] [Open] Use smaller buffer for sendmsg
From:
Jeremy Evans <code@...>
Date:
2015-07-21 07:04:27 UTC
List:
ruby-core #70058
On 07/20 07:21, Jeremy Evans wrote:
> On 07/21 12:05, Eric Wong wrote:
> > Jeremy Evans <code@jeremyevans.net> wrote:
> > > Looks like my initial analysis was partially wrong. OpenBSD's default
> > > buffer for SEQPACKET sockets is 4096. However, ancdata.c needs a patch
> > > to handle EMSGSIZE.
> >
> > This looks like a bug in OpenBSD. I don't know in what standards an
> > application is expected to handle EMSGSIZE as a retryable error when
> > writing to a socket.
> >
> > Maybe a version-guarded #ifdef for OpenBSD would be alright for now,
> > but I think this needs to be fixed in OpenBSD.
>
> Thanks for the heads up. The network stack is not my area of expertise,
> but I'll talk with the other OpenBSD developers and see if this should
> be fixed in the kernel.
This turns out to be a bug in the lower levels of the OpenBSD kernel,
specific to SEQPACKET. I've tested a patch that fixes it, it will
probably be in the next release.
The default socket buffer size for SEQPACKET sockets is actually 4096
on OpenBSD, so it may be better to increase the size values back, though
not all the way up to 8192. Below is a patch that does that.
Thanks again for the heads up.
Jeremy
--- test/socket/test_nonblock.rb
+++ test/socket/test_nonblock.rb
@@ -299,7 +299,7 @@ class TestSocketNonblock < Test::Unit::TestCase
if defined?(UNIXSocket) && defined?(Socket::SOCK_SEQPACKET)
def test_sendmsg_nonblock_seqpacket
- buf = '*' * 63
+ buf = '*' * 4096
UNIXSocket.pair(:SEQPACKET) do |s1, s2|
assert_raise(IO::WaitWritable) do
loop { s1.sendmsg_nonblock(buf) }
@@ -310,7 +310,7 @@ class TestSocketNonblock < Test::Unit::TestCase
end
def test_sendmsg_nonblock_no_exception
- buf = '*' * 63
+ buf = '*' * 128
UNIXSocket.pair(:SEQPACKET) do |s1, s2|
n = 0
Timeout.timeout(60) do