threads branch on darwin/ppc: one file now passes but two others hang

Reini Urban rurban at x-ray.at
Mon Aug 13 03:42:08 UTC 2012


On Sat, Aug 11, 2012 at 6:37 PM, James E Keenan <jkeen at verizon.net> wrote:
> I have some good news and some bad news about the state of the threads
> branch on Darwin/PPC.
>
> Seeing today that there had been additional commits to this branch in the
> past few days, I tested it today for the first time since commit e567a21 on
> July 25.  I got a completely successful 'make test' at commit 56c96dde25.
> But since there's also been a lot of activity on master in the past few
> days, I wondered (a) does master PASS 'make test' (it does); and (b) what
> will happen when the threads branch is merged into master?
>
> So I created a local, intermediate branch called 'formerge' by merging
> threads into master.  Unfortunately, I started to get intermittent failures
> in several files which come up later in 'make test' than 't/pmc/nci.t' (the
> file where we have been experienced hanging on several tests):
>
> t/pmc/timer.t: hung once during make smolder_test, passed next time and when
> run individually.
>
> t/src/threads.t: hung during make smolder_test, then passed individually and
> during 'make src_tests'.
>
> This was suspicious.  So I again retested master -- which PASSed again and
> then retested the threads branch -- which hung at t/pir/timer_exit.t.  When
> I ran 'prove t/pir/timer_exit.t' individually while 'make test' was still
> hanging at its invocation of that test, it hung.  Then, after I killed 'make
> test', I tried 'prove t/pir/timer_exit.t' -- which ran quickly and PASSed.
>
> Now, I wasn't logging the first runs I did today, so there's a possibility
> that I misremember the name of the first failing test file, i.e., that it
> might have been t/pir/timer_exit.t rather than t/pmc/timer.t that failed the
> first time around.
>
> Even granting that, I know that I have experienced intermittent hangs in at
> least two files -- t/src/threads.t and t/pir/timer_exit.t -- either in the
> threads branch per se or in a branch where I've merged threads into master.

t/pmc/task.t also hangs sometimes, as some tests which do sleep and experience
some kind of signals during sleep. If HW, SW or OS I don't know.

> But the good news remains: On this platform, t/pmc/nci.t is now PASSing
> repeatedly and, I hope, consistently.

In short the threads branch summary:

The good:
* nci.t passes now because I removed the sleep calls.
* There's no windows quirks anymore.

The bad:
* sleep causes deadlocks with certain signals. I have not yet identified which.
It's not architecture related.
It's reproducible with tsan.

Background:
sleep is implemented in the threads branch differently, via a seperate
native thread.

> Thanks to everyone who is following these issues.  It would be good to see
> if we're experiencing similar results on other non-Linux or non-Intel
> systems.
-- 
Reini Urban
http://cpanel.net/   http://www.perl-compiler.org/


More information about the parrot-dev mailing list