From: nobu.nakada@... Date: 2004-01-07T16:15:24+09:00 Subject: [ruby-dev:22525] Re: ruby-1.8.1 build failed on HP-UX 11.11 なかだです。 At Wed, 7 Jan 2004 13:09:42 +0900, MIYAMUKO Katsuyuki wrote: > DRb だけのテストです。io_write で似たようなエラーになりました。 > > % ruby19 test/runner.rb -v -a test/drb > Loaded suite drb > Started > : > test_05_too_large_ary(TestDRbLarge): /opt/ruby190/lib/ruby/1.9/drb/drb.rb:584: [ > BUG] rb_sys_fail() - errno == 0 > ruby 1.9.0 (2004-01-06) [hppa2.0n-hpux11.11] > > zsh: abort (core dumped) ruby19 test/runner.rb -v -a test/drb うーん、rb_io_wait_writable()でQfalseを返すときにerrnoが壊れて るような気がするんですが、errnoの参照だけで返ってるはずなんです よねぇ。rb_io_wait_writable()の中で保存したほうがいいのかも知れ ませんが、とりあえずこれだとどうなるでしょうか。 Index: io.c =================================================================== RCS file: /cvs/ruby/src/ruby/io.c,v retrieving revision 1.255 diff -u -2 -p -r1.255 io.c --- io.c 6 Jan 2004 12:51:40 -0000 1.255 +++ io.c 7 Jan 2004 07:07:58 -0000 @@ -397,8 +397,10 @@ rb_io_fwrite(ptr, len, f) while (ptr += (r = fwrite(ptr, 1, n, f)), (n -= r) > 0) { if (ferror(f)) { + int e = errno; if (rb_io_wait_writable(fileno(f))) { clearerr(f); continue; } + errno = e; return -1L; } -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦