On 03/19/2018 06:21 PM, Dave Mitchell wrote:
> Hi Karl,
> I just ran the test suite on a threaded blead build, and lots of tests are
> failing. The first one, in run/switches.t, can be reduced to:
>
> use threads;
> use strict;
> @ARGV = ("/tmp/x");
> $^I = "";
> while (<>) {
> threads->create(sub { })->join;
> print "yy\n";
> }
> print "ok\n";
>
> $ (echo bar; echo bar) > /tmp/x
> $ ./perl -Ilib ~/tmp/p
> perl: locale.c:964: S_emulate_setlocale: Assertion `PL_C_locale_obj' failed.
> Aborted (core dumped)
>
> I haven't looked at the other failing tests, but my stderr log file
> does contain lots of those assertions, so I think it likely that they're
> all related to recent locale work.
>
> Note that 5.27.10 is due for release tomorrow.
Thanks, someone on #irc told me about this email, so I worked on it, and
it should be fixed by
commit 8d8484540d380c09fb40616135be00825189f578
Author: Karl Williamson <
k...@cpan.org>
Date: Mon Mar 19 20:52:25 2018 -0600
Fix locale failures introduced 5 hours ago
Commit 9fe4122e6defd7e9204ed6f2370d926d4c3b261b broke threaded builds
because it changed to free a global variable upon thread exit (I had
forgotten that it wasn't an interpreter variable).
I do not know why this passed before pushing; others have had trouble
reproducing it. But the same tests were failing for me now. The one
difference is that I had been using clang with address sanitizer
compiled in but turned off when I made that commit. Now I'm using g++
Spotted by Dave Mitchell