Status update for FTBFS on GNU/kFreeBSD
- fail of t226.rb is handled in #543805
- fail of t916.rb will be gone after next upload of eglibc
- the t913.rb currently hangs the whole build, similarly also all tests
TestProcess#test_*
after next upload (and install) of eglibc and kfreebsd-7 it will only
fail and majority of TestProcess#test_* will pass.
On the other hand, I see some problems with handling of fork()/exec().
There really should be reinitialization of locks in child,
the timer should be started using pthread_once(), the current
approach is fragile and might lead to start of more timer threads.
IMHO, the code needs audit in this area.
I.e., I really doubt the following code in process.c
for rb_f_fork(VALUE obj) is correct:
switch (pid = rb_fork(0, 0, 0, Qnil)) {
case 0:
#ifdef linux
after_exec();
#endif
rb_thread_atfork();
if (rb_block_given_p()) {
int status;
rb_protect(rb_yield, Qundef, &status);
ruby_stop(status);
}
The conditional after_exec() shouldn't be here.
There is already "after_fork()" at line 2331,
which is executed for both parent and child.
The exception is when chfunc is not NULL,
then it is not executed at all.
Petr
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]