Open p5pRT opened 8 years ago
The following test consistently fails on threaded build (and passes on non-threaded):
./perl -Ilib -Idist/Time-HiRes dist/Time-HiRes/t/clock.t 1..5 # I am the main process 52997\, starting the watchdog process... # The watchdog process 52998 launched\, continuing testing... # I am the watchdog process 52998\, sleeping for 360 seconds... ok 1 - require Time::HiRes; # have_clock_gettime = 1 # have_clock_getres = 1 # have_clock_nanosleep = 1 # have_clock = 1 # CLOCK_REALTIME: try = 1 panic: MUTEX_LOCK (22) [HiRes.xs:773] at dist/Time-HiRes/t/clock.t line 40. # I am the main process 52997\, terminating the watchdog process 52998 before it terminates me in 360 seconds (testing took 0 seconds). # kill KILL 52998 = 1 # All done. # Looks like your test exited with 255 just after 1.
On Tue Jun 21 05:31:08 2016\, randir wrote:
The following test consistently fails on threaded build (and passes on non-threaded):
./perl -Ilib -Idist/Time-HiRes dist/Time-HiRes/t/clock.t 1..5 # I am the main process 52997\, starting the watchdog process... # The watchdog process 52998 launched\, continuing testing... # I am the watchdog process 52998\, sleeping for 360 seconds... ok 1 - require Time::HiRes; # have_clock_gettime = 1 # have_clock_getres = 1 # have_clock_nanosleep = 1 # have_clock = 1 # CLOCK_REALTIME: try = 1 panic: MUTEX_LOCK (22) [HiRes.xs:773] at dist/Time-HiRes/t/clock.t line 40. # I am the main process 52997\, terminating the watchdog process 52998 before it terminates me in 360 seconds (testing took 0 seconds). # kill KILL 52998 = 1 # All done. # Looks like your test exited with 255 just after 1.
This appears to have been fixed in blead\, probably by
commit c4a535af41823cc84534bf8dbecfdcc3eb7daa86 Author: Steve Hay \steve\.m\.hay@​googlemail\.com Date: Fri Jul 1 08:27:18 2016 +0100
Upgrade Time::HiRes from version 1.9734 to 1.9739
which is confusing\, since it's blead upstream.
Tony
The RT System itself - Status changed from 'new' to 'open'
On Tue Jul 19 22:45:43 2016\, tonyc wrote:
This appears to have been fixed in blead\, probably by
commit c4a535af41823cc84534bf8dbecfdcc3eb7daa86 Author: Steve Hay \steve\.m\.hay@​googlemail\.com Date: Fri Jul 1 08:27:18 2016 +0100
Upgrade Time​::HiRes from version 1\.9734 to 1\.9739
Yes\, it passes tests now.
Dne Wed\, 20 Jul 2016 04:42:48 -0700 je randir napisal:
Yes\, it passes tests now.
I'm probably experiencing the same problem with 5.24.1 (on OS X 10.7)\, but I checked 5.25.9 after finding this thread and all the tests pass on 5.25.9. Is there any chance to backport the fix? Thank you.
Some additional information below.
Just in case here's the relevant chuck from the tests (to make sure it's the same issue?):
dist/Time-HiRes/t/clock ....................................... panic: MUTEX_LOCK (22) [HiRes.xs:773] at t/clock.t line 40. # Looks like you planned 5 tests but ran 1. # Looks like your test exited with 255 just after 1. FAILED--expected 5 tests\, saw 1
This might be related to: https://rt.perl.org/Public/Bug/Display.html?id=128972
Also relevant. I'm using the following patch for 5.24\, else the build would fail on Sierra:
--- dist/Time-HiRes/HiRes.xs.orig +++ dist/Time-HiRes/HiRes.xs @@ -940\,7 +940\,7 @@ BOOT: } # endif #endif -#if defined(PERL_DARWIN) +#if defined(PERL_DARWIN) && !defined(CLOCK_REALTIME) # ifdef USE_ITHREADS MUTEX_INIT(&darwin_time_mutex); # endif
It could also be that the test fails because of this patch.
https://trac.macports.org/ticket/52012 https://trac.macports.org/ticket/53440
The tests succeed with perl5.25.9.
One of our developers says that the problem is in the included version of Time::HiRes:
v5.22.3 1.9726 v5.24.1 1.9733 v5.25.9 1.9741
Citing David:
Versions of OS X prior to Sierra do not provide the functions clock_getres()\, clock_gettime()\, clock_nanosleep() and consequently versions of Time::HiRes prior to 1.9729 just disabled this functionality. perl5.22 @5.22.3 has 1.9726 so passes the test.
Time::HiRes 1.9729 then implemented emulation of clock_getres()\, clock_gettime()\, clock_nanosleep() on OS X platforms as an enhancement
Sierra however introduced clock_getres()\, clock_gettime() but not clock_nanosleep() which broke the 1.9729 emulation code. This was fixed in Time::HiRes 1.9739 but perl5.24 @5.24.1 has 1.9733 so fails on Sierra.
perl5.25 @5.25.9 has 1.9741 with this Sierra fix (and a few others for Sierra and El Capitan) so passes the test.
On Mon\, Jan 30\, 2017 at 12:59 PM\, Mojca Miklavec via RT \perlbug\-followup@​perl\.org wrote:
Dne Wed\, 20 Jul 2016 04:42:48 -0700 je randir napisal:
Yes\, it passes tests now.
I'm probably experiencing the same problem with 5.24.1 (on OS X 10.7)\, but I checked 5.25.9 after finding this thread and all the tests pass on 5.25.9. Is there any chance to backport the fix? Thank you.
Yeah\, this does sound like a sensible thing to backport.
Leon
On 02/17/2017 11:15 AM\, Leon Timmermans wrote:
On Mon\, Jan 30\, 2017 at 12:59 PM\, Mojca Miklavec via RT \perlbug\-followup@​perl\.org wrote:
Dne Wed\, 20 Jul 2016 04:42:48 -0700 je randir napisal:
Yes\, it passes tests now. I'm probably experiencing the same problem with 5.24.1 (on OS X 10.7)\, but I checked 5.25.9 after finding this thread and all the tests pass on 5.25.9. Is there any chance to backport the fix? Thank you. Yeah\, this does sound like a sensible thing to backport.
I agree.
Note: Backporting a newer Time::HiRes for 5.24.3 is under discussion in https://rt-archive.perl.org/perl5/Ticket/Display.html?id=128427.
Migrated from rt.perl.org#128445 (status was 'open')
Searchable as RT128445$