New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
re/pat_advanced.t test 396 fails under -Dusethreads -Duse64bitall (solaris) #14640
Comments
From @tonycozCreated by @tonycozThis requires both -Dusethread and -Duse64bitall and does not occur This was bisected to: commit 64935bc Add qr/\b{gcb}/ Setting -Doptimize=-g also prevents it from occuring. Separating out the test into a separate file, like: #!perl -l package main; produces: / as the output. The correct result ("a:/") is produced if a non-overloaded value is Perl Info
|
From @khwilliamsonOn 04/20/2015 01:21 AM, Tony Cook (via RT) wrote:
Is this only on solaris? Is it a 5.22 blocker in your opinion? |
The RT System itself - Status changed from 'new' to 'open' |
From @tonycozOn Mon Apr 20 10:11:55 2015, public@khwilliamson.com wrote:
I think so, both use64bitall and usethreads are common. The smoke has been consistently failing since the commit. I'll get you access to the VM where this is happening, if you like. Tony |
From @khwilliamsonOn 04/20/2015 04:12 PM, Tony Cook via RT wrote:
I now have access, and can reproduce the problem. Interestingly it goes But I can't find a gdb on the system to use to trace the execution. |
From @iabynOn Tue, Apr 21, 2015 at 12:30:24PM -0600, Karl Williamson wrote:
IIRC (and I probably don't) the Solaris equivalent of gdb is dbx or -- |
From @tonycozOn Wed, Apr 22, 2015 at 11:04:43AM +0100, Dave Mitchell wrote:
adb, which on Solaris 11 is a link to mdb. But I've installed gdb. Tony |
From @TuxOn Wed, 22 Apr 2015 20:54:27 +1000, Tony Cook <tony@develop-help.com>
adb (absolute debugger or advanced debugger) is more of an old-style dbx is a source-level debugger found primarily on Solaris, AIX, IRIX, aix $ dbx --help dbx [-a ProcessID] [-B DebugFile] [-c CommandFile] [-I Directory] -a ProcessID Attach to specified process aix $ adb --help hpux $ adb --help SYNOPSIS HP bundles a set of debuggers with an umbrella GUI wdb (Wildebeast $ wdb -version $ dde -v $ xdb -v NAME SYNOPSIS $ xdb --help Options: $ /opt/langtools/bin/pxdb --help and finally GNU gdb $ /opt/langtools/bin/gdb --version
-- |
From @khwilliamsonOn 04/20/2015 04:12 PM, Tony Cook via RT wrote:
The latest info about this is: Turning on compile and/or execute re debugging causes it to not fail. Compiling with -O1 doesn't fail. perl won't fully compile with -O0, failing at the last moment in If I don't clean the workspace from an -O1, but re-run Configure with |
From pdb_ml@yahoo.com.auOn Wed, Apr 22, 2015 4:24:52 PM, public@khwilliamson.com wrote:
Just some additional information, TL;DR: this bug does not seem to affect perl-5.21.11 built with GCC. Yesterday I built 12 variants of perl 5.21.11 using GCC 4.8.4 and GCC 4.9.2, on X86 32-bit and 64-bit Compile Servers, running Sun Solaris 10 Update 8, Oracle Solaris 10 Update 11 and Oracle Solaris 11.2. No failures seen in any "gmake test" runs. These GCC were locally built not vendor provided. The 32-bit builds trigger a much larger set of warnings than the 64-bit builds but no compilation aborts. 64-bit systems using -DDuse64bitall Other options to change installation paths, use bison, and be explicit about a few Solaris default like -Duselargefiles. Regards, PS: VM Host names show the combinations explicitly. sol10u08-gcc48-x86-32 |
From [Unknown Contact. See original ticket]On Wed, Apr 22, 2015 4:24:52 PM, public@khwilliamson.com wrote:
Just some additional information, TL;DR: this bug does not seem to affect perl-5.21.11 built with GCC. Yesterday I built 12 variants of perl 5.21.11 using GCC 4.8.4 and GCC 4.9.2, on X86 32-bit and 64-bit Compile Servers, running Sun Solaris 10 Update 8, Oracle Solaris 10 Update 11 and Oracle Solaris 11.2. No failures seen in any "gmake test" runs. These GCC were locally built not vendor provided. The 32-bit builds trigger a much larger set of warnings than the 64-bit builds but no compilation aborts. 64-bit systems using -DDuse64bitall Other options to change installation paths, use bison, and be explicit about a few Solaris default like -Duselargefiles. Regards, PS: VM Host names show the combinations explicitly. sol10u08-gcc48-x86-32 |
From @TuxOn Thu, 23 Apr 2015 18:02:37 -0700, "Peter Bray via RT"
Do you have the resources to run Test::Smoke on these boxes? We do not
-- |
From pdb_ml@yahoo.com.auOn 24/04/15 06:45 PM, H.Merijn Brand wrote:
Not at the moment, the project I'm working on will keep these systems at Regards, |
From @rjbsOn Wed Apr 22 16:24:52 2015, public@khwilliamson.com wrote:
So, where do we stand? The impression I get is that we don't have a clear route forward here. Any suggestions as to what can be done to move this forward? -- |
From @tonycozOn Mon Apr 27 15:26:16 2015, rjbs wrote:
This appears to be a code generation bug in solaris studio 12.3. When calculating PL_charclass['\n'] it's using a bogus value from the stack The non-overloaded version is only working by accident. If I move the '\n' to a variable the code works correctly, of course, this will slow down all implementations to work around what appears to be a real bug in An alternative might be to use C< 0 > instead of C< isWORDCHAR_L1('\n') > The code that's misbehaving is this code in S_regmatch(): case TRADITIONAL_BOUND: The code generated for the isWORDCHAR_L1('\n') appears to be: { 5632 } movl -600(%rbp),%eax / sym=.CV12B Tony |
From @khwilliamsonOn 04/27/2015 05:33 PM, Tony Cook via RT wrote:
The only reason was to make it self-documenting, at no apparent runtime I'm still concerned that compiling with -O0 causes perl to not build. A
|
From @khwilliamson0001-PATCH-perl-124348-XXX.patchFrom 236603201bd10cef4fee81a23d74a1e9e7386316 Mon Sep 17 00:00:00 2001
From: Karl Williamson <khw@cpan.org>
Date: Mon, 27 Apr 2015 21:52:02 -0600
Subject: [PATCH] PATCH: [perl #124348] XXX
XXX Fill in
---
regexec.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/regexec.c b/regexec.c
index 7247259..893ce3b 100644
--- a/regexec.c
+++ b/regexec.c
@@ -5623,11 +5623,11 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
switch((bound_type) FLAGS(scan)) {
case TRADITIONAL_BOUND:
ln = (locinput == reginfo->strbeg)
- ? isWORDCHAR_L1('\n')
+ ? 0 /* isWORDCHAR_L1('\n') */
: isWORDCHAR_utf8(reghop3((U8*)locinput, -1,
(U8*)(reginfo->strbeg)));
n = (NEXTCHR_IS_EOS)
- ? isWORDCHAR_L1('\n')
+ ? 0 /* isWORDCHAR_L1('\n') */
: isWORDCHAR_utf8((U8*)locinput);
match = cBOOL(ln != n);
break;
@@ -5693,10 +5693,10 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
switch((bound_type) FLAGS(scan)) {
case TRADITIONAL_BOUND:
ln = (locinput == reginfo->strbeg)
- ? isWORDCHAR_L1('\n')
+ ? 0 /* isWORDCHAR_L1('\n') */
: isWORDCHAR_L1(UCHARAT(locinput - 1));
n = (NEXTCHR_IS_EOS)
- ? isWORDCHAR_L1('\n')
+ ? 0 /* isWORDCHAR_L1('\n') */
: isWORDCHAR_L1(nextchr);
match = cBOOL(ln != n);
break;
--
2.1.0
|
From @khwilliamsonOn 04/27/2015 09:56 PM, Karl Williamson wrote:
I forgot to mention that doing this causes the the tests to not fail on
|
From @khwilliamsonThanks to Tony Cook for tracking this down Fixed by not having the compiler do any evaluation -- |
@khwilliamson - Status changed from 'open' to 'pending release' |
From @khwilliamsonThank you for submitting this ticket. The issue should now be resolved with the release today of Perl v5.22, which is available at http://www.perl.org/get.html |
@khwilliamson - Status changed from 'pending release' to 'resolved' |
Migrated from rt.perl.org#124348 (status was 'resolved')
Searchable as RT124348$
The text was updated successfully, but these errors were encountered: