t/pmc/nci.t still hangs on the threads branch on darwin/ppc

Reini Urban rurban at x-ray.at
Thu Jul 26 16:02:35 UTC 2012


On Wed, Jul 25, 2012 at 9:20 PM, James E Keenan <jkeen at verizon.net> wrote:
> On 7/21/12 6:15 AM, Stefan Seifert wrote:
>>
>> On Friday 20 July 2012 14:05:48 Jonathan Duke Leto wrote:
>>
>>> I dusted off my darwin/ppc box and the latest commit on the threads
>>> branch still hangs on t/pmc/nci.t .
>>>
>>> If anybody has any ideas/patches that they would like me to try,
>>> please let me know.
>>
>>
>> Can you please try the attached patch? It just increases the timeouts in
>> some
>> tests. The original uses 10ms sleeps which is very little considering that
>> for
>> example Windows gives us only 100ms resolution timers. If this doesn't
>> help,
>> it's probably a problem with the timer thread.
>>
>
> Unfortunately, in the threads branch this file hangs -- though the test it
> hangs on may differ from run to run.
>
> Below:  the file hangs at test 37.
>
> $ prove -v t/pmc/nci.t
> t/pmc/nci.t ..
> 1..60
> ok 1 - load library fails
> ok 2 - dlfunc on undef
> ok 3 - dlfunc function not found
> ok 4 - dlfunc function is defined
> ok 5 - dlfunc function pointer
> ok 6 - nci_c - return a char in an INTEGER register
> ok 7 - nci_d and nci_dlvar_double
> ok 8 - nci_f and nci_dlvar_float
> ok 9 - nci_l - return a long in an INTEGER register
> ok 10 - nci_p - return a pointer to int
> ok 11 - nci_s - return a short in an INTEGER register
> ok 12 - nci_v and nci_dlvar_int
> ok 13 - nci_dd - PASM
> ok 14 - nci_dd - PIR
> ok 15 - get_string()
> ok 16 - nci_fff
> ok 17 - nci_isc
> ok 18 - nci_ssc
> ok 19 - nci_csc
> ok 20 - nci_dd - stress test
> ok 21 - nci_dd - clone
> ok 22 - nci_iiii
> ok 23 - nci_pi - struct with ints
> ok 24 - nci_pi - struct with floats
> ok 25 - nci_pi - align
> ok 26 - nci_pi - char*
> ok 27 - nci_pi - nested struct *
> ok 28 - nci_pi - nested struct * w named access
> ok 29 - nci_pi - func_ptr* with signature
> ok 30 - nci_pi - nested struct aligned
> ok 31 - nci_pi - nested struct unaligned
> ok 32 - nci_pi - nested, unaligned, named
> ok 33 - nci_pi - int
> ok 34 - nci_ip
> ok 35 - nci_pi - null
> not ok 36 - nci_vP # TODO Disabled to avoid linkage problems, see
> src/nci_test.c
>
> #   Failed (TODO) test 'nci_vP'
> #   at t/pmc/nci.t line 1292.
> #          got: 'got null
> # got null
> # '
> #     expected: 'ok
> # got null
> # '
>
> But on the next run, I got through test 37, only to experience a hang on
> test 38:
>
> ok 37 - nci_cb_C1 - PASM
>
> And on the third run, I got through both 37 and 38, only to hang on 39:
>
> ok 37 - nci_cb_C1 - PASM
> ok 38 - nci_cb_C1 - PIR
>
> But on the fourth run, I was back to hanging on 37.

Now that's interesting. It indeed looks like a deadlock in nci
callbacks when run in parallel.
At first we should disallow those cb tests to run in parallel. And
maybe skip 36 nci_vP.
-- 
Reini Urban
http://cpanel.net/   http://www.perl-compiler.org/


More information about the parrot-dev mailing list