Project

General

Profile

Actions

Bug #9820

closed

miniruby -e 'Process.kill(:INT, $$)' hang under cron

Added by akr (Akira Tanaka) almost 10 years ago. Updated over 9 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.2.0dev (2014-05-09 trunk 45884) [x86_64-linux]
[ruby-dev:48203]

Description

最近、しばたさんが運用を始めた chkbuild で、
TestBeginEndBlock#test_propagate_signaled が hang しています。
http://chkbuild002.hsbt.org/chkbuild/ruby-trunk/log/20140509T060013Z.fail.html.gz

調べて再現コードを小さくしていった結果、

miniruby -e 'Process.kill(:INT, $$)'

というのを cron から動かしたときは hang し、
端末から動かしたときは hang しない、ということが判明しました。

strace した結果をみると、
cron 下では timer thread が prctl の直後に poll を呼び出してそれが終わらないという挙動なのに対し、
端末ではそのあたりで context switch が起きている、ような気がします。

strace の結果を strace.cron.log と strace.term.log として添付します。

なにかわかるひとはいますでしょうか?

% ./miniruby -v
ruby 2.2.0dev (2014-05-09 trunk 45884) [x86_64-linux]
% uname -mrsv      
Linux 3.2.0-4-amd64 #1 SMP Debian 3.2.54-2 x86_64
% lsb_release -idrc
Distributor ID:	Debian
Description:	Debian GNU/Linux 7.5 (wheezy)
Release:	7.5
Codename:	wheezy

なお、コミッタならしばたさんに頼むとそのマシンにアカウントを作ってくれる模様です。


Files

strace.cron.log (15.8 KB) strace.cron.log cron下で動かしたときのstraceのログ akr (Akira Tanaka), 05/09/2014 08:04 AM
strace.term.log (17.6 KB) strace.term.log 端末で動かしたときのstraceのログ akr (Akira Tanaka), 05/09/2014 08:04 AM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0