I could just exclude those two tests on FreeBSD, if that's fine for you...
I just tried "Ruby 1.9.2 preview 1 released" under linux-i386
with glibc 2.3.6, with linuxthreads add on. It fails with:
test_fork.rb .bootstraptest.tmp.rb:6:in `wait': No child processes
(Errno::ECHILD)
from bootstraptest.tmp.rb:6:in `<main>'
..
test_thread.rb ......................./tmp/bootstraptest.tmpwd20090826-2884-tqrfb5/zzz.rb:3:in
`wait2': No child processes (Errno::ECHILD) from
/tmp/bootstraptest.tmpwd20090826-2884-tqrfb5/zzz.rb:3:in `<top
(required)>'
from bootstraptest.tmp.rb:13:in `require'
from bootstraptest.tmp.rb:13:in `<main>'
F..F...................
#916 test_thread.rb:219:in `<top (required)>':
open("zzz.rb", "w") do |f|
f.puts <<-END
begin
Thread.new { fork { GC.start } }.join
pid, status = Process.wait2
$result = status.success? ? :ok : :ng
rescue NotImplementedError
$result = :ok
end
END
end
require "./zzz.rb"
$result
#=> "" (expected "ok")
#919 test_thread.rb:254:in `<top (required)>':
STDERR.reopen(STDOUT)
exec "/"
#=> killed by signal 32
FAIL 2/938 tests failed
So these two failures can be expected also on current hppa.
It remains the #226.
Under GNU/kFreeBSD it sometimes passes, sometimes fails.
In general, I do not understand how code in thread_pthread.c:
static pthread_t timer_thread_id;
static pthread_cond_t timer_thread_cond = PTHREAD_COND_INITIALIZER;
static pthread_mutex_t timer_thread_lock = PTHREAD_MUTEX_INITIALIZER;
rb_thread_create_timer_thread()
thread_timer()
could survive correctly fork(), see also
http://www.opengroup.org/onlinepubs/009695399/functions/pthread_atfork.html
Please, could you exclude all three tests on GNU/kFreeBSD,
drop FTBFS from bug title and leave this bug open.
I will try investigate yet more later.
Petr
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]