kgio RubyGem user+dev discussion/patches/pulls/bugs/help
 help / color / mirror / code / Atom feed
* There's no TCP_NOPUSH in Solaris 10
@ 2012-03-18 12:45 Edho Arief
  2012-03-19  9:29 ` Eric Wong
  2012-03-19  9:31 ` Eric Wong
  0 siblings, 2 replies; 13+ messages in thread
From: Edho Arief @ 2012-03-18 12:45 UTC (permalink / raw)
  To: kgio

The definition of kgio_autopush_read and kgio_autopush_write (in
read_write.c) never happened in Solaris 10: it's not linux and there's
no TCP_NOPUSH anywhere in its system header. It caused error when
running unicorn (and of course the test):

ld.so.1: ruby: fatal: relocation error: file
/home/edho/app/ruby19/lib/ruby/gems/1.9.1/gems/kgio-2.7.3/lib/kgio_ext.so:
symbol kgio_autopush_read: referenced symbol not found
ld.so.1: ruby: fatal: relocation error: file
/home/edho/app/ruby19/lib/ruby/gems/1.9.1/gems/kgio-2.7.3/lib/kgio_ext.so:
symbol kgio_autopush_write: referenced symbol not found

Forcing definition of them enables unicorn to work (at least seems to
be working) but fails test (tried both Linux and BSD version):

  1) Failure:
test_wait_writable_ruby_default(TestUnixServerReadClientWrite)
[/home/edho/git/kgio/test/lib_read_write.rb:289]:
Exception raised:
<Interrupt>.

(it took long time so I stopped it)


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: There's no TCP_NOPUSH in Solaris 10
  2012-03-18 12:45 There's no TCP_NOPUSH in Solaris 10 Edho Arief
@ 2012-03-19  9:29 ` Eric Wong
  2012-03-19  9:31 ` Eric Wong
  1 sibling, 0 replies; 13+ messages in thread
From: Eric Wong @ 2012-03-19  9:29 UTC (permalink / raw)
  To: kgio

Edho Arief <edho@myconan.net> wrote:
> The definition of kgio_autopush_read and kgio_autopush_write (in
> read_write.c) never happened in Solaris 10: it's not linux and there's
> no TCP_NOPUSH anywhere in its system header. It caused error when
> running unicorn (and of course the test):

I don't care for non-Free platforms, but maybe some of the other BSDs
got broken, too, so I pushed out this fix to "master" on
git://bogomips.org/kgio.git

>From 85ae255f73b9b81ae3d17e6420dbb95a29dbe8b7 Mon Sep 17 00:00:00 2001
From: Eric Wong <normalperson@yhbt.net>
Date: Mon, 19 Mar 2012 05:53:03 +0000
Subject: [PATCH] fix for non-Linux, non-TCP_NOPUSH platforms

We don't need to care for TCP_NOPUSH in read_write.c, it's
entirely in autopush.c and no-op on platforms without
TCP_CORK/TCP_NOPUSH.  TCP_CORK/TCP_NOPUSH are non-POSIX, so
it's entirely possible some Free systems will lack them.

Reported-by: Edho Arief <edho@myconan.net>
---
 ext/kgio/read_write.c |    3 ---
 1 file changed, 3 deletions(-)

diff --git a/ext/kgio/read_write.c b/ext/kgio/read_write.c
index 9c2440e..51d2d16 100644
--- a/ext/kgio/read_write.c
+++ b/ext/kgio/read_write.c
@@ -20,11 +20,8 @@ static inline void kgio_autopush_write(VALUE io) { }
 
 #else
 static const int peek_flags = MSG_PEEK;
-#  include <netinet/tcp.h>
-#  if defined(TCP_NOPUSH)
 static inline void kgio_autopush_read(VALUE io) { kgio_autopush_recv(io); }
 static inline void kgio_autopush_write(VALUE io) { kgio_autopush_send(io); }
-#  endif
 #endif
 
 NORETURN(static void raise_empty_bt(VALUE, const char *));


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: There's no TCP_NOPUSH in Solaris 10
  2012-03-18 12:45 There's no TCP_NOPUSH in Solaris 10 Edho Arief
  2012-03-19  9:29 ` Eric Wong
@ 2012-03-19  9:31 ` Eric Wong
  2012-03-19  9:35   ` Edho Arief
  1 sibling, 1 reply; 13+ messages in thread
From: Eric Wong @ 2012-03-19  9:31 UTC (permalink / raw)
  To: kgio

Edho Arief <edho@myconan.net> wrote:
> Forcing definition of them enables unicorn to work (at least seems to
> be working) but fails test (tried both Linux and BSD version):

Wait, this fails on Linux and *BSD, too?  Which Ruby version and exactly
which OSes did you use?

>   1) Failure:
> test_wait_writable_ruby_default(TestUnixServerReadClientWrite)
> [/home/edho/git/kgio/test/lib_read_write.rb:289]:
> Exception raised:
> <Interrupt>.
> 
> (it took long time so I stopped it)

I've removed my idiotic assert_nothing_raised usage in all tests to make
it easier to track down.  Also pushed to bogomips.org/kgio.git

>From 74b9f78e11b915439555290dc3bdd4331303561c Mon Sep 17 00:00:00 2001
From: Eric Wong <normalperson@yhbt.net>
Date: Mon, 19 Mar 2012 06:05:06 +0000
Subject: [PATCH] test/*: remove assert_nothing_raised

It makes test failures hard to track down, tests will
already fail if exceptions are thrown and we'll get
nice backtraces.
---
 test/lib_read_write.rb            |   19 +++++++------------
 test/test_accept_class.rb         |   10 +++++-----
 test/test_autopush.rb             |   22 +++++++++-------------
 test/test_connect_fd_leak.rb      |   10 ++++------
 test/test_poll.rb                 |    4 +---
 test/test_singleton_read_write.rb |    2 +-
 test/test_tryopen.rb              |    2 +-
 7 files changed, 28 insertions(+), 41 deletions(-)

diff --git a/test/lib_read_write.rb b/test/lib_read_write.rb
index d7f50c2..dfcba20 100644
--- a/test/lib_read_write.rb
+++ b/test/lib_read_write.rb
@@ -9,10 +9,8 @@ module LibReadWriteTest
   RANDOM_BLOB = File.open("/dev/urandom") { |fp| fp.read(10 * 1024 * 1024) }
 
   def teardown
-    assert_nothing_raised do
-      @rd.close if defined?(@rd) && ! @rd.closed?
-      @wr.close if defined?(@wr) && ! @wr.closed?
-    end
+    @rd.close if defined?(@rd) && ! @rd.closed?
+    @wr.close if defined?(@wr) && ! @wr.closed?
   end
 
   def test_write_empty
@@ -264,10 +262,8 @@ module LibReadWriteTest
     foo = nil
     t0 = Time.now
     thr = Thread.new { sleep 1; @wr.write "HELLO" }
-    assert_nothing_raised do
-      foo = @rd.kgio_read(5)
-      elapsed = Time.now - t0
-    end
+    foo = @rd.kgio_read(5)
+    elapsed = Time.now - t0
     assert elapsed >= 1.0, "elapsed: #{elapsed}"
     assert_equal "HELLO", foo
     thr.join
@@ -286,10 +282,9 @@ module LibReadWriteTest
     foo = nil
     t0 = Time.now
     thr = Thread.new { sleep 1; @rd.readpartial(nr) }
-    assert_nothing_raised do
-      foo = @wr.kgio_write("HELLO")
-      elapsed = Time.now - t0
-    end
+    foo = @wr.kgio_write("HELLO")
+    elapsed = Time.now - t0
+
     assert_nil foo
     if @wr.stat.pipe?
       assert elapsed >= 1.0, "elapsed: #{elapsed}"
diff --git a/test/test_accept_class.rb b/test/test_accept_class.rb
index cf59a2f..0e1d172 100644
--- a/test/test_accept_class.rb
+++ b/test/test_accept_class.rb
@@ -12,12 +12,12 @@ class TestAcceptClass < Test::Unit::TestCase
   end
 
   def teardown
-    assert_nothing_raised { Kgio.accept_class = nil }
+    Kgio.accept_class = nil
     assert_equal Kgio::Socket, Kgio.accept_class
   end
 
   def test_tcp_socket
-    assert_nothing_raised { Kgio.accept_class = Kgio::TCPSocket }
+    Kgio.accept_class = Kgio::TCPSocket
     assert_equal Kgio::TCPSocket, Kgio.accept_class
   end
 
@@ -31,21 +31,21 @@ class TestAcceptClass < Test::Unit::TestCase
     @srv = Kgio::TCPServer.new(@host, 0)
     @port = @srv.addr[1]
 
-    assert_nothing_raised { Kgio.accept_class = Kgio::TCPSocket }
+    Kgio.accept_class = Kgio::TCPSocket
     client = TCPSocket.new(@host, @port)
     assert_instance_of Kgio::TCPSocket, @srv.kgio_accept
     client = TCPSocket.new(@host, @port)
     IO.select([@srv])
     assert_instance_of Kgio::TCPSocket, @srv.kgio_tryaccept
 
-    assert_nothing_raised { Kgio.accept_class = nil }
+    Kgio.accept_class = nil
     client = TCPSocket.new(@host, @port)
     assert_instance_of Kgio::Socket, @srv.kgio_accept
     client = TCPSocket.new(@host, @port)
     IO.select([@srv])
     assert_instance_of Kgio::Socket, @srv.kgio_tryaccept
 
-    assert_nothing_raised { Kgio.accept_class = Kgio::UNIXSocket }
+    Kgio.accept_class = Kgio::UNIXSocket
     client = TCPSocket.new(@host, @port)
     assert_instance_of Kgio::UNIXSocket, @srv.kgio_accept
     client = TCPSocket.new(@host, @port)
diff --git a/test/test_autopush.rb b/test/test_autopush.rb
index 57fbefa..6c6e05f 100644
--- a/test/test_autopush.rb
+++ b/test/test_autopush.rb
@@ -18,12 +18,10 @@ class TestAutopush < Test::Unit::TestCase
 
     @host = ENV["TEST_HOST"] || '127.0.0.1'
     @srv = Kgio::TCPServer.new(@host, 0)
-    assert_nothing_raised {
+    RUBY_PLATFORM =~ /linux/ and
       @srv.setsockopt(Socket::IPPROTO_TCP, TCP_CORK, 1)
-    } if RUBY_PLATFORM =~ /linux/
-    assert_nothing_raised {
+    RUBY_PLATFORM =~ /freebsd/ and
       @srv.setsockopt(Socket::IPPROTO_TCP, TCP_NOPUSH, 1)
-    } if RUBY_PLATFORM =~ /freebsd/
     @port = @srv.addr[1]
   end
 
@@ -35,7 +33,7 @@ class TestAutopush < Test::Unit::TestCase
     assert ! s.kgio_autopush?
     s.kgio_autopush = true
     assert s.kgio_autopush?
-    assert_nothing_raised { s.kgio_write 'asdf' }
+    s.kgio_write 'asdf'
     assert_equal :wait_readable, s.kgio_tryread(1)
     assert s.kgio_autopush?
     val = s.getsockopt(Socket::IPPROTO_TCP, opt).unpack('i')[0]
@@ -64,12 +62,10 @@ class TestAutopush < Test::Unit::TestCase
       lines = io.readlines
       assert lines.grep(/TCP_CORK/).empty?, lines.inspect
     else
-      assert_nothing_raised do
-        @wr = @srv.kgio_accept
-        t0 = Time.now
-        @wr.kgio_write "HI\n"
-        rc = @wr.kgio_tryread 666
-      end
+      @wr = @srv.kgio_accept
+      t0 = Time.now
+      @wr.kgio_write "HI\n"
+      rc = @wr.kgio_tryread 666
     end
     assert_equal "HI\n", @rd.kgio_read(3)
     diff = Time.now - t0
@@ -151,8 +147,8 @@ class TestAutopush < Test::Unit::TestCase
       lines = io.readlines
       assert_equal 2, lines.grep(/TCP_CORK/).size, lines.inspect
     end
-    assert_nothing_raised { @wr.close }
-    assert_nothing_raised { @rd.close }
+    @wr.close
+    @rd.close
 
     @wr = Kgio::TCPSocket.new(@host, @port)
     if defined?(Strace)
diff --git a/test/test_connect_fd_leak.rb b/test/test_connect_fd_leak.rb
index f6a8543..1dfc4cd 100644
--- a/test/test_connect_fd_leak.rb
+++ b/test/test_connect_fd_leak.rb
@@ -9,11 +9,9 @@ class TestConnectFDLeak < Test::Unit::TestCase
     nr = 0
     path = "/non/existent/path"
     assert(! File.exist?(path), "#{path} should not exist")
-    assert_nothing_raised do
-      begin
-        sock = Kgio::UNIXSocket.new(path)
-      rescue Errno::ENOENT
-      end while (nr += 1) < 10000
-    end
+    begin
+      sock = Kgio::UNIXSocket.new(path)
+    rescue Errno::ENOENT
+    end while (nr += 1) < 10000
   end
 end
diff --git a/test/test_poll.rb b/test/test_poll.rb
index df59354..40092cf 100644
--- a/test/test_poll.rb
+++ b/test/test_poll.rb
@@ -122,9 +122,7 @@ class TestPoll < Test::Unit::TestCase
       exit!(0)
     end
 
-    assert_nothing_raised do
-      empty += 1 until Kgio.poll(set.dup, 100)
-    end
+    empty += 1 until Kgio.poll(set.dup, 100)
     _, status = Process.waitpid2(pid)
     assert status.success?, status.inspect
     assert usr1 > 0, "usr1: #{usr1}"
diff --git a/test/test_singleton_read_write.rb b/test/test_singleton_read_write.rb
index 5abbf00..86d30a2 100644
--- a/test/test_singleton_read_write.rb
+++ b/test/test_singleton_read_write.rb
@@ -6,7 +6,7 @@ class TestSingletonReadWrite < Test::Unit::TestCase
 
   def test_unix_socketpair
     a, b = UNIXSocket.pair
-    assert_nothing_raised { Kgio.trywrite(a, "HELLO") }
+    Kgio.trywrite(a, "HELLO")
     buf = ""
     assert_equal "HELLO", Kgio.tryread(b, 5, buf)
     assert_equal "HELLO", buf
diff --git a/test/test_tryopen.rb b/test/test_tryopen.rb
index 5a8efb2..80b5de3 100644
--- a/test/test_tryopen.rb
+++ b/test/test_tryopen.rb
@@ -15,7 +15,7 @@ class TestTryopen < Test::Unit::TestCase
     assert_equal File.read(__FILE__), tmp.read
     assert_equal __FILE__, tmp.path
     assert_equal __FILE__, tmp.to_path
-    assert_nothing_raised { tmp.close }
+    tmp.close
   end
 
   def test_tryopen_ENOENT


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: There's no TCP_NOPUSH in Solaris 10
  2012-03-19  9:31 ` Eric Wong
@ 2012-03-19  9:35   ` Edho Arief
  2012-03-19  9:52     ` Eric Wong
  0 siblings, 1 reply; 13+ messages in thread
From: Edho Arief @ 2012-03-19  9:35 UTC (permalink / raw)
  To: kgio

2012/3/19 Eric Wong <normalperson@yhbt.net>:
> Edho Arief <edho@myconan.net> wrote:
>> Forcing definition of them enables unicorn to work (at least seems to
>> be working) but fails test (tried both Linux and BSD version):
>
> Wait, this fails on Linux and *BSD, too?  Which Ruby version and exactly
> which OSes did you use?
>

I mean neither BSD version:

static inline void kgio_autopush_read(VALUE io) { kgio_autopush_recv(io); }
static inline void kgio_autopush_write(VALUE io) { kgio_autopush_send(io); }

nor Linux:

static inline void kgio_autopush_read(VALUE io) { }
static inline void kgio_autopush_write(VALUE io) { }

passed the test on Solaris 10.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: There's no TCP_NOPUSH in Solaris 10
  2012-03-19  9:35   ` Edho Arief
@ 2012-03-19  9:52     ` Eric Wong
  2012-03-19 10:10       ` Edho Arief
  0 siblings, 1 reply; 13+ messages in thread
From: Eric Wong @ 2012-03-19  9:52 UTC (permalink / raw)
  To: kgio

Edho Arief <edho@myconan.net> wrote:
> 2012/3/19 Eric Wong <normalperson@yhbt.net>:
> > Edho Arief <edho@myconan.net> wrote:
> >> Forcing definition of them enables unicorn to work (at least seems to
> >> be working) but fails test (tried both Linux and BSD version):
> >
> > Wait, this fails on Linux and *BSD, too?  Which Ruby version and exactly
> > which OSes did you use?
> 
> I mean neither BSD version:
> nor Linux:

OK, can you try with latest git?  Also which Ruby version are you using?
Did any of this work in previous version of kgio?

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: There's no TCP_NOPUSH in Solaris 10
  2012-03-19  9:52     ` Eric Wong
@ 2012-03-19 10:10       ` Edho Arief
  2012-03-19 20:09         ` Eric Wong
  0 siblings, 1 reply; 13+ messages in thread
From: Edho Arief @ 2012-03-19 10:10 UTC (permalink / raw)
  To: kgio

2012/3/19 Eric Wong <normalperson@yhbt.net>:
>
> OK, can you try with latest git?  Also which Ruby version are you using?
> Did any of this work in previous version of kgio?

I've never tested on other version since it was just my random weekend
experiment.

ruby 1.9.3p125 (2012-02-16 revision 34643) [i386-solaris2.10]

ruby -I lib:tmp/ext/ruby-1.9.3/ext/kgio
test/test_unix_server_read_client_write.rb
Run options:

# Running tests:

..............................^C

Finished tests in 489.996062s, 0.0000 tests/s, 0.0000 assertions/s.

0 tests, 0 assertions, 0 failures, 0 errors, 0 skips
Interrupted
make: *** [test/test_unix_server_read_client_write.rb] Error 1

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: There's no TCP_NOPUSH in Solaris 10
  2012-03-19 10:10       ` Edho Arief
@ 2012-03-19 20:09         ` Eric Wong
  2012-03-20 10:53           ` Edho Arief
  0 siblings, 1 reply; 13+ messages in thread
From: Eric Wong @ 2012-03-19 20:09 UTC (permalink / raw)
  To: kgio

Edho Arief <edho@myconan.net> wrote:
> 2012/3/19 Eric Wong <normalperson@yhbt.net>:
> >
> > OK, can you try with latest git?  Also which Ruby version are you using?
> > Did any of this work in previous version of kgio?
> 
> I've never tested on other version since it was just my random weekend
> experiment.
> 
> ruby 1.9.3p125 (2012-02-16 revision 34643) [i386-solaris2.10]

If you have time, maybe truss/dtruss can tell you what's wrong?  Do ruby
tests themselves pass?  I'm not sure if anybody on the Ruby core team
tests/maintains your platform on a regular basis.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: There's no TCP_NOPUSH in Solaris 10
  2012-03-19 20:09         ` Eric Wong
@ 2012-03-20 10:53           ` Edho Arief
  2012-03-21 20:15             ` Eric Wong
  0 siblings, 1 reply; 13+ messages in thread
From: Edho Arief @ 2012-03-20 10:53 UTC (permalink / raw)
  To: kgio

2012/3/20 Eric Wong <normalperson@yhbt.net>:
> Edho Arief <edho@myconan.net> wrote:
>> 2012/3/19 Eric Wong <normalperson@yhbt.net>:
>> >
>> > OK, can you try with latest git?  Also which Ruby version are you using?
>> > Did any of this work in previous version of kgio?
>>
>> I've never tested on other version since it was just my random weekend
>> experiment.
>>
>> ruby 1.9.3p125 (2012-02-16 revision 34643) [i386-solaris2.10]
>
> If you have time, maybe truss/dtruss can tell you what's wrong?  Do ruby
> tests themselves pass?  I'm not sure if anybody on the Ruby core team
> tests/maintains your platform on a regular basis.

Failed one test for ruby: http://pastie.org/3634027

Here is the truss for kgio make test (relevant part, I hope):

ruby -I lib:tmp/ext/ruby-1.9.3/ext/kgio
test/test_unix_server_read_client_write.rb
write(1, " r u b y   - I   l i b :".., 84)      = 84
lwp_sigmask(SIG_SETMASK, 0x60004007, 0x00000000) = 0xFFBFFEFF [0x0000FFFF]
lwp_sigmask(SIG_SETMASK, 0xFFBFFEFF, 0x0000FFFF) = 0x60004007 [0x00000000]
vfork()                                         = 13190
lwp_sigmask(SIG_SETMASK, 0x60004007, 0x00000000) = 0xFFBFFEFF [0x0000FFFF]
schedctl()                                      = 0xFEF4F000
lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000) = 0xFFBFFEFF [0x0000FFFF]
Run options:

# Running tests:

........................waitid(P_ALL, 0, 0x080460E0, WEXITED|WTRAPPED)
(sleeping...)
......

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: There's no TCP_NOPUSH in Solaris 10
  2012-03-20 10:53           ` Edho Arief
@ 2012-03-21 20:15             ` Eric Wong
  2012-03-22  1:48               ` Edho Arief
  0 siblings, 1 reply; 13+ messages in thread
From: Eric Wong @ 2012-03-21 20:15 UTC (permalink / raw)
  To: kgio

Edho Arief <edho@myconan.net> wrote:
> 2012/3/20 Eric Wong <normalperson@yhbt.net>:
> > Edho Arief <edho@myconan.net> wrote:
> >> 2012/3/19 Eric Wong <normalperson@yhbt.net>:
> >> >
> >> > OK, can you try with latest git?  Also which Ruby version are you using?
> >> > Did any of this work in previous version of kgio?
> >>
> >> I've never tested on other version since it was just my random weekend
> >> experiment.
> >>
> >> ruby 1.9.3p125 (2012-02-16 revision 34643) [i386-solaris2.10]
> >
> > If you have time, maybe truss/dtruss can tell you what's wrong?  Do ruby
> > tests themselves pass?  I'm not sure if anybody on the Ruby core team
> > tests/maintains your platform on a regular basis.
> 
> Failed one test for ruby: http://pastie.org/3634027

Use "make check", that runs "make test-all" as well

> Here is the truss for kgio make test (relevant part, I hope):
> 
> ruby -I lib:tmp/ext/ruby-1.9.3/ext/kgio
> test/test_unix_server_read_client_write.rb
> write(1, " r u b y   - I   l i b :".., 84)      = 84
> lwp_sigmask(SIG_SETMASK, 0x60004007, 0x00000000) = 0xFFBFFEFF [0x0000FFFF]
> lwp_sigmask(SIG_SETMASK, 0xFFBFFEFF, 0x0000FFFF) = 0x60004007 [0x00000000]
> vfork()                                         = 13190
> lwp_sigmask(SIG_SETMASK, 0x60004007, 0x00000000) = 0xFFBFFEFF [0x0000FFFF]
> schedctl()                                      = 0xFEF4F000
> lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000) = 0xFFBFFEFF [0x0000FFFF]
> Run options:
> 
> # Running tests:
> 
> ........................waitid(P_ALL, 0, 0x080460E0, WEXITED|WTRAPPED)
> (sleeping...)

You probably need to follow the fork() and trace children ("strace -f"
for Linux, maybe "truss -f"?  My memory escapes me).

Just wondering, does this patch help?

--- a/test/lib_read_write.rb
+++ b/test/lib_read_write.rb
@@ -281,7 +281,7 @@ module LibReadWriteTest
     elapsed = 0
     foo = nil
     t0 = Time.now
-    thr = Thread.new { sleep 1; @rd.readpartial(nr) }
+    thr = Thread.new { sleep 1; @rd.read(nr) }
     foo = @wr.kgio_write("HELLO")
     elapsed = Time.now - t0
 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: There's no TCP_NOPUSH in Solaris 10
  2012-03-21 20:15             ` Eric Wong
@ 2012-03-22  1:48               ` Edho Arief
  2012-03-22  8:38                 ` Eric Wong
  0 siblings, 1 reply; 13+ messages in thread
From: Edho Arief @ 2012-03-22  1:48 UTC (permalink / raw)
  To: kgio

On 2012-03-22 3:15, Eric Wong wrote:
>> Failed one test for ruby: http://pastie.org/3634027
>
> Use "make check", that runs "make test-all" as well
>

Exactly same result.

> You probably need to follow the fork() and trace children ("strace -f"
> for Linux, maybe "truss -f"?  My memory escapes me).
>
> Just wondering, does this patch help?
>

Yes it does: http://pastie.org/3645240


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: There's no TCP_NOPUSH in Solaris 10
  2012-03-22  1:48               ` Edho Arief
@ 2012-03-22  8:38                 ` Eric Wong
  2012-03-22 15:00                   ` Edho Arief
  0 siblings, 1 reply; 13+ messages in thread
From: Eric Wong @ 2012-03-22  8:38 UTC (permalink / raw)
  To: kgio

Edho Arief <edho@myconan.net> wrote:
> On 2012-03-22 3:15, Eric Wong wrote:
> >> Failed one test for ruby: http://pastie.org/3634027
> >
> > Use "make check", that runs "make test-all" as well
> 
> Exactly same result.

Err, maybe "make test-all" or somehow skip the segfaulting test to
go to the socket tests

> > You probably need to follow the fork() and trace children ("strace -f"
> > for Linux, maybe "truss -f"?  My memory escapes me).
> >
> > Just wondering, does this patch help?

OK, pushed this out (I thought I responded to this email earlier :x).

> Yes it does: http://pastie.org/3645240

  1) Error:
test_unix_socket_new_invalid(TestKgioUnixConnect):
Errno::ENOENT: No such file or directory - /tmp/kgio_unix20120322-20281-fg6a03
    test/test_unix_connect.rb:27:in `unlink'
    test/test_unix_connect.rb:27:in `teardown'

I'm not sure how this could happen... Race condition in the filesystem?
Is /tmp a tmpfs directory?  Can you try setting TMPDIR to point to a
different filesystem and see if you can reliably reproduce this?


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: There's no TCP_NOPUSH in Solaris 10
  2012-03-22  8:38                 ` Eric Wong
@ 2012-03-22 15:00                   ` Edho Arief
  2012-03-23 21:15                     ` Eric Wong
  0 siblings, 1 reply; 13+ messages in thread
From: Edho Arief @ 2012-03-22 15:00 UTC (permalink / raw)
  To: kgio

2012/3/22 Eric Wong <normalperson@yhbt.net>:
>
>  1) Error:
> test_unix_socket_new_invalid(TestKgioUnixConnect):
> Errno::ENOENT: No such file or directory - /tmp/kgio_unix20120322-20281-fg6a03
>    test/test_unix_connect.rb:27:in `unlink'
>    test/test_unix_connect.rb:27:in `teardown'
>
> I'm not sure how this could happen... Race condition in the filesystem?
> Is /tmp a tmpfs directory?  Can you try setting TMPDIR to point to a
> different filesystem and see if you can reliably reproduce this?

/tmp is tmpfs, yes. Changing to other mount point (ufs) didn't help.
It occurred 4 times out of 4 test runs (ie. every test).

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: There's no TCP_NOPUSH in Solaris 10
  2012-03-22 15:00                   ` Edho Arief
@ 2012-03-23 21:15                     ` Eric Wong
  0 siblings, 0 replies; 13+ messages in thread
From: Eric Wong @ 2012-03-23 21:15 UTC (permalink / raw)
  To: kgio

Edho Arief <edho@myconan.net> wrote:
> 2012/3/22 Eric Wong <normalperson@yhbt.net>:
> >
> >  1) Error:
> > test_unix_socket_new_invalid(TestKgioUnixConnect):
> > Errno::ENOENT: No such file or directory - /tmp/kgio_unix20120322-20281-fg6a03
> >    test/test_unix_connect.rb:27:in `unlink'
> >    test/test_unix_connect.rb:27:in `teardown'
> >
> > I'm not sure how this could happen... Race condition in the filesystem?
> > Is /tmp a tmpfs directory?  Can you try setting TMPDIR to point to a
> > different filesystem and see if you can reliably reproduce this?
> 
> /tmp is tmpfs, yes. Changing to other mount point (ufs) didn't help.
> It occurred 4 times out of 4 test runs (ie. every test).

Weird.  Do you think you can figure out a fix/workaround for this?  It's
not a concern unless it affects a Free Software platform people use, but
I will accept a patch if you can fix the issue.

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2012-03-23 21:15 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-18 12:45 There's no TCP_NOPUSH in Solaris 10 Edho Arief
2012-03-19  9:29 ` Eric Wong
2012-03-19  9:31 ` Eric Wong
2012-03-19  9:35   ` Edho Arief
2012-03-19  9:52     ` Eric Wong
2012-03-19 10:10       ` Edho Arief
2012-03-19 20:09         ` Eric Wong
2012-03-20 10:53           ` Edho Arief
2012-03-21 20:15             ` Eric Wong
2012-03-22  1:48               ` Edho Arief
2012-03-22  8:38                 ` Eric Wong
2012-03-22 15:00                   ` Edho Arief
2012-03-23 21:15                     ` Eric Wong

Code repositories for project(s) associated with this public inbox

	https://yhbt.net/kgio.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).