Skip to content

mingw64 failing test re/uniprops01.t in github CI #18866

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

Closed
tonycoz opened this issue Jun 7, 2021 · 2 comments
Closed

mingw64 failing test re/uniprops01.t in github CI #18866

tonycoz opened this issue Jun 7, 2021 · 2 comments

Comments

@tonycoz
Copy link
Contributor

tonycoz commented Jun 7, 2021

Module:

Description

Since 1e870be, up to at least 9085b4e mingw64 tests have been failing:

re/uniprops01.t ...................................................... 
Dubious, test returned 9 (wstat 2304, 0x900)
No subtests run 

I haven't been able to reproduce this locally.

Reverting the change and pushing to a test branch:

https://github.com/tonycoz/perl5/tree/revert_is_utf8_char

does successfully pass on github's CI.

The 1e870be change looks fine.

@xenu
Copy link
Member

xenu commented Jun 7, 2021

I could reproduce it by RDPing into github actions. Even there, it fails only when not started under a debugger, so I had to run the test like this: perl -I../lib -E "<>; do '.\re\uniprops01.t' and then attach to it with gdb.

It looks like yet another instance of #17521 :( I expect this could be worked around by shifting some code around somewhere near the part that leads to croak(). For example, in #17496 a similar crash was fixed with this change: 99c9ca9

Here's the stacktrace:

PS C:\Users\runneradmin> gdb -p 5988
GNU gdb (GDB) 8.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-w64-mingw32".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
Attaching to process 5988
[New Thread 5988.0xddc]
[New Thread 5988.0x4bc]
[New Thread 5988.0x1f4]
[New Thread 5988.0xd50]
Reading symbols from D:\a\perl5\perl5\perl.exe...done.
(gdb) c
Continuing.
[Thread 5988.0xd50 exited with code 0]
warning:

 *** A stack buffer overrun occurred in "D:\a\perl5\perl5\perl.exe" -I ../lib -E "<>; do '.\re\uniprops01.t'":

warning: This is usually the result of a memory copy to a local buffer or structure where the size is not properly calculated/checked.
warning: If this bug ends up in the shipping product, it could be a severe security hole.
warning: The stack trace should show the guilty function (the function directly above __report_gsfailure).
warning:  *** enter .exr 00007FFD572D2EC0 for the exception record
warning:  *** then kb to get the faulting stack


Thread 1 received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 5988.0xddc]
0x00007ffd5726c8e5 in ntdll!RtlUnhandledExceptionFilter2 () from C:\Windows\SYSTEM32\ntdll.dll
(gdb) bt
#0  0x00007ffd5726c8e5 in ntdll!RtlUnhandledExceptionFilter2 () from C:\Windows\SYSTEM32\ntdll.dll
#1  0x00007ffd571ffa2f in ntdll!RtlRetrieveNtUserPfn () from C:\Windows\SYSTEM32\ntdll.dll
#2  0x00007ffd57205abf in wcstombs () from C:\Windows\SYSTEM32\ntdll.dll
#3  0x00007ffd57214aaf in ntdll!.chkstk () from C:\Windows\SYSTEM32\ntdll.dll
#4  0x00007ffd5717610c in ntdll!RtlUnwindEx () from C:\Windows\SYSTEM32\ntdll.dll
#5  0x00007ffd54a734bd in msvcrt!_setjmpex () from C:\Windows\System32\msvcrt.dll
#6  0x000000006b2dbfe7 in Perl_die_unwind (my_perl=0x0, my_perl@entry=0x16b008, msv=msv@entry=0xca2b480)
    at ..\pp_ctl.c:1843
#7  0x000000006b371bfa in Perl_vcroak (my_perl=0x16b008, pat=<optimized out>, args=<optimized out>) at ..\util.c:2011
#8  0x000000006b3722b2 in Perl_croak (my_perl=0x8315b6a4d0cd0000, my_perl@entry=0x16b008,
    pat=0x8 <error: Cannot access memory at address 0x8>, pat@entry=0x6b39da83 <ident_too_long+147> "%d%I64u%4p")
    at ..\util.c:2071
#9  0x000000006b25df80 in Perl_get_regclass_nonbitmap_data (my_perl=my_perl@entry=0x16b008, prog=<optimized out>,
    node=node@entry=0xc696680, doinit=doinit@entry=true, listsvp=listsvp@entry=0x0,
    only_utf8_locale_ptr=only_utf8_locale_ptr@entry=0x62f838, output_invlist=output_invlist@entry=0x0)
    at ..\regcomp.c:20283
#10 0x000000006b26643a in S_reginclass (my_perl=my_perl@entry=0x16b008, prog=<optimized out>, prog@entry=0xc724708,
    n=<optimized out>, n@entry=0xc696680, p=<optimized out>, p_end=0x24ddc19 "", utf8_target=utf8_target@entry=false)
    at ..\regexec.c:10644
#11 0x000000006b2785d1 in S_find_byclass (my_perl=my_perl@entry=0x16b008, prog=prog@entry=0xc724708,
    c=c@entry=0xc696680, s=<optimized out>, s@entry=0x24ddc18 "x", strend=strend@entry=0x24ddc19 "",
    reginfo=reginfo@entry=0x62fa60) at ..\regexec.c:2231
#12 0x000000006b27d834 in Perl_regexec_flags (my_perl=0x16b008, rx=0xca1bf08, stringarg=0x24ddc18 "x",
    strend=0x24ddc19 "", strbeg=0x24ddc18 "x", minend=0, sv=0x2253168, data=0x0, flags=97) at ..\regexec.c:4010
#13 0x000000006b2fe280 in Perl_pp_match (my_perl=0x16b008) at ../inline.h:208
#14 0x000000006b367806 in Perl_runops_standard (my_perl=0x16b008) at ..\run.c:42
#15 0x000000006b317b90 in S_run_body (oldscope=<optimized out>, my_perl=<optimized out>) at perl.c:2738
#16 perl_run (my_perl=0x6b378350 <xs_init(PerlInterpreter*)>, my_perl@entry=0x16b008) at perl.c:2666
#17 0x000000006b37ba18 in RunPerl (argc=<optimized out>, argv=<optimized out>, env=0x21c3950) at perllib.c:201
---Type <return> to continue, or q <return> to quit---
#18 0x00000000004013c7 in __tmainCRTStartup ()
#19 0x00000000004014fb in mainCRTStartup ()

@xenu
Copy link
Member

xenu commented Jul 29, 2021

It seems ffea747 made it pass again.

@xenu xenu closed this as completed Jul 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants