[#7064] How to put version number of shared library? — Ryo HAYASAKA <hayasaka@...21.u-aizu.ac.jp>
早坂@会津大学です。
4 messages
1999/06/02
[#7082] [BUG] unpack('m') — 民斗 <tommy@...>
民斗です。
6 messages
1999/06/07
[#7091] [BUG?] load in thread — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
7 messages
1999/06/09
[#7092] Re: [BUG?] load in thread
— matz@... (Yukihiro Matsumoto)
1999/06/09
まつもと ゆきひろです
[#7102] Ruby 1.3.4-990611 — Yukihiro Matsumoto <matz@...>
Ruby 1.3.4-990611 is out, check out:
20 messages
1999/06/11
[#7108] Re: Ruby 1.3.4-990611
— Koji Arai <JCA02266@...>
1999/06/12
新井です。
[#7123] Re: Ruby 1.3.4-990611
— nagai@...
1999/06/16
永井@知能.九工大です.
[#7110] --enable-shared support — Katsuyuki Komatsu <komatsu@...>
小松です。
11 messages
1999/06/14
[#7111] Re: --enable-shared support
— WATANABE Tetsuya <tetsu@...>
1999/06/15
渡辺哲也です。
[#7173] [BUG] <<`HERE_DOC` — Koji Arai <JCA02266@...>
新井です。
7 messages
1999/06/22
[#7178] [PATCH] rubydb3x.el, ruby-mode.el — nobu.nakada@...
中田です。
7 messages
1999/06/22
[#7181] acknowledgement — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
6 messages
1999/06/23
[#7210] Ruby 1.3.4-990624 — Yukihiro Matsumoto <matz@...>
Ruby 1.3.4-990624 is out, check out:
7 messages
1999/06/24
[#7223] Ruby 1.3.4-990625 — Yukihiro Matsumoto <matz@...>
Ruby 1.3.4-990625 is out, check out:
14 messages
1999/06/25
[#7224] -Wl,-rpath on Linux (Re: Ruby 1.3.4-990625)
— Ryo HAYASAKA <hayasaka@...21.u-aizu.ac.jp>
1999/06/25
早坂@会津大学です。
[#7225] Re: -Wl,-rpath on Linux (Re: Ruby 1.3.4-990625)
— Katsuyuki Komatsu <komatsu@...>
1999/06/25
小松です。
[#7226] Re: -Wl,-rpath on Linux (Re: Ruby 1.3.4-990625)
— Katsuyuki Komatsu <komatsu@...>
1999/06/25
小松です。
[#7227] Re: -Wl,-rpath on Linux (Re: Ruby 1.3.4-990625)
— Katsuyuki Komatsu <komatsu@...>
1999/06/25
小松です。
[#7253] Re: Ruby 1.3.4-990625 — SHIROYAMA Takayuki <psi@...>
9 messages
1999/06/29
[#7258] TkVariable — Koji Arai <JCA02266@...>
新井です。
6 messages
1999/06/29
[ruby-dev:7109] Re: Ruby 1.3.4-990611
From:
WATANABE Tetsuya <tetsu@...>
Date:
1999-06-14 01:33:09 UTC
List:
ruby-dev #7109
渡辺哲也です。
動きが変わったのでお知らせします。
ruby-1.3.4-990611
Linux 2.0.26 (glibc-2.0.7)
$stdout = IO.popen('nkf -j', 'w')
のように $stdout を上書きすると、出力時にプロセスがブロック
してしまうことが起きました。
ターミナルから C-c (intr) すると
SIGPIPE (SignalException)
と表示されます。
簡単な再現スクリプトが書けず、とりあえずお知らせということ
で。
■ 回避策
io.c 1495 に
rb_obj_call_init((VALUE)port, 0, 0);
を追加。これは一つ前のリリースとの差から(他への影響はよくわ
からないです)。
または
w = IO.popen('nkf -j', 'w')
$stdout = w
と書く。
GC との関係がありそうで、スクリプトから不要? な部分を削ると
起きません。
それと
IO.popen で nkf は使わずに NKF.nkf する。
■ 止っているときの状況
gdb 上で再現して、止っているところを backtrace しました。
#0 0x400bc7f9 in __wait4 ()
#1 0x400f66cc in __DTOR_END__ ()
#2 0x807870c in rb_lastline_set ()
#3 0x8078b6f in rb_syswait ()
#4 0x8064289 in rb_io_ungetc ()
#5 0x80642ce in rb_io_ungetc ()
#6 0x80642f9 in rb_io_fptr_finalize ()
#7 0x80608aa in rb_gc_force_recycle ()
#8 0x8060494 in rb_gc_mark ()
#9 0x8060a36 in rb_gc ()
#10 0x805f863 in xmalloc ()
#11 0x8087822 in rb_f_sprintf ()
#12 0x80654a3 in rb_io_unbuffered ()
#13 0x8056cb5 in rb_ensure ()
#14 0x8057142 in rb_ensure ()
#15 0x80577d4 in rb_ensure ()
#16 0x8053794 in rb_eval_cmd ()
#17 0x8055e0a in rb_iterator_p ()
#18 0x8055f73 in rb_yield ()
#19 0x8093a1b in rb_ary_each ()
#20 0x8056cbf in rb_ensure ()
#21 0x8057142 in rb_ensure ()
#22 0x80577d4 in rb_ensure ()
#23 0x8053794 in rb_eval_cmd ()
#24 0x80529cd in rb_eval_cmd ()
#25 0x8052302 in rb_eval_cmd ()
#26 0x8050ab4 in ruby_options ()
#27 0x8050b90 in ruby_run ()
#28 0x804f94c in main ()
strace の結果です。プロセスが止ってしまうので、そこで C-c
しています。
write(1, "<li> <a href=\"\"> </a> 0.0KB\n", 28) = 28
write(1, "<li> <a href=\"\"> </a> 0.0KB\n", 28) = 28
brk(0x8108000) = 0x8108000
write(1, "<li> <a href=\"\"> </a> 0.0KB\n", 28) = 28
close(5) = 0
munmap(0x4000b000, 4096) = 0
sigaction(SIGHUP, {SIG_IGN}, {0x8087060, [], SA_STACK|0xda028}) = 0
sigaction(SIGQUIT, {SIG_IGN}, {0x8087060, [], 0x2}) = 0
sigaction(SIGINT, {SIG_IGN}, {0x8087060, [], SA_STACK|SA_NOCLDSTOP|0x5fcd8}) = 0
wait4(6573, [WIFSIGNALED(s) && WTERMSIG(s) == SIGINT], 0, NULL) = 6573
--- SIGINT (Interrupt) ---
--- SIGCHLD (Child exited) ---
sigaction(SIGHUP, {0x8087060, [], SA_STACK|SA_RESTART|SA_INTERRUPT|SA_ONESHOT|0x7ffdf18}, {SIG_IGN}) = 0
sigaction(SIGQUIT, {0x8087060, [], SA_STACK|SA_NOCLDSTOP|0x5fbca}, {SIG_IGN}) = 0
sigaction(SIGINT, {0x8087060, [], SA_STACK|0xda028}, {SIG_IGN}) = 0
write(1, "<li> <a href=\"\"> </a> 0.0KB\n", 28) = -1 EPIPE (Broken pipe)
--- SIGPIPE (Broken pipe) ---
sigreturn() = ? (mask now [])
sigprocmask(SIG_SETMASK, [], NULL) = 0
write(2, "timesort.rb:81", 14) = 14
write(2, ": ", 2) = 2
write(2, "SIGPIPE", 7) = 7
write(2, " (", 2) = 2
write(2, "SignalException", 15) = 15
write(2, ")\n", 2) = 2
write(2, "\tfrom timesort.rb:78:in `each\'"..., 31) = 31
write(2, "\tfrom timesort.rb:78\n", 21) = 21
munmap(0x4000c000, 4096) = 0
_exit(1) = ?
どちらも wait4(2) でプロセスの終了待ちをしていますが、スカッと終わると
きは、この wait4(2) に到達していないようです。
--
WATANABE Tetsuya
e-mail: Tetsuya_WATANABE@hp.com
tetsu@jpn.hp.com