-
Notifications
You must be signed in to change notification settings - Fork 577
64-bit perl crash on SIGINT(2) #13596
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
Comments
From [email protected]Hello, It crashes when I try to interrupt its execution, by pressing CTRL+C. It doesn't always crash, but it does most of the times. See the attached Windbg log, crash_perl64.txt I can crash, in the same manner, ActivePerl x64, Strawberry Perl x64 and 64-bit self-build Perl from 5.18.2 sources, using Visual C++ 2010. |
From [email protected]Microsoft (R) Windows Debugger Version 6.2.9200.16384 AMD64 CommandLine: perl script.pl 0:000> kP |
From @bulk88On Tue Feb 11 13:48:02 2014, mhanor@yahoo.com wrote:
This is a race condition. Identical to https://rt-archive.perl.org/perl5/Ticket/Display.html?id=101072 . The 2 MS C lib signal handlers provided by MS always run in a separate new thread by Win API. They do not stop the existing thread, change instruction pointer, then run the C func on the C stack of the existing thread with the timeslice of the existing thread. I think I've seen and participated in discussion of this before on the ML or Perl RT, but Perl RT's full text search has been broken/removed for months since the RT 4 upgrade. -- |
The RT System itself - Status changed from 'new' to 'open' |
From @tonycozOn Tue Feb 11 18:49:16 2014, bulk88 wrote:
I wonder why we have a handler when the user hasn't requested one. As to searching, you might try using Google Groups or markmail. You might be thinking of https://rt-archive.perl.org/perl5/Ticket/Display.html?id=116254 Tony |
From @bulk88On Tue Feb 11 20:12:54 2014, tonyc wrote:
Because of a Perl_warn http://perl5.git.perl.org/perl.git/commit/3fadfdf11dfb17421538d2f4280b4d99a5c6cb5a?f=win32/win32.c . I'm not sure what signal safety rules are on POSIX, but http://perl5.git.perl.org/perl.git/commit/3fadfdf11dfb17421538d2f4280b4d99a5c6cb5a?f=win32/win32.c this says printf/stdio/malloc are not signal safe on paper (a Linux box with glibc has a longer safe list). Nothing except exit() is "safe". So the issue here is, you called malloc inside a sig handler. Now you randomly deadlock/heap corruption. (from a IRC disccusion with TonyC) I do really like that warning, since it says what happened graphically instead of a "normal exit" and checking the exit code is the only way to know if it crashed/segved/abnormal exit.
No, https://rt.perl.org/Ticket/Display.html?id=40445 was the one. Also this thread is related https://groups.google.com/forum/#!searchin/perl.perl5.porters/%22ctrl-c%22|sort:date/perl.perl5.porters/-owPMsC9bBA/IefqyhyXp8YJ -- |
Migrated from rt.perl.org#121236 (status was 'open')
Searchable as RT121236$
The text was updated successfully, but these errors were encountered: