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
implicit file handle close during global destruction segfaults if no PL_curcop #15591
Comments
From @toddrCreated by @toddrWe are seeing a segfault while running this minimized code. It happens Note that the segfault happened in the child process. On Linux, the tail -1f /var/log/messages |grep libperl The minimized script: sub do_in_child { sub script { script if(!caller); Perl Info
|
From @toddrThis bisects to: commit 96d7c88 |
From [Unknown Contact. See original ticket]This bisects to: commit 96d7c88 |
From @atoomicAfter using gdb on the program it appears that the COP is empty when calling isLEXWARN_off #define isLEXWARN_off (PL_curcop->cop_warnings == pWARN_STD) there is not protection when PL_curcop is empty Program received signal SIGSEGV, Segmentation fault. On Wed Sep 07 16:27:03 2016, TODDR wrote:
|
The RT System itself - Status changed from 'new' to 'open' |
From @toddrOn Wed Sep 07 16:30:10 2016, atoomic wrote:
This may point to the fact that Father's commit is not the issue. The issue seems to be that PL_curcop was cleared when we redefined a subroutine we happened to be in and then we exited inside that subroutine. Had PL_curcop not been cleared, we wouldn't have had this issue. It's not clear why re-defining a subroutine necessarily needs to clear PL_curcop? |
From [Unknown Contact. See original ticket]On Wed Sep 07 16:30:10 2016, atoomic wrote:
This may point to the fact that Father's commit is not the issue. The issue seems to be that PL_curcop was cleared when we redefined a subroutine we happened to be in and then we exited inside that subroutine. Had PL_curcop not been cleared, we wouldn't have had this issue. It's not clear why re-defining a subroutine necessarily needs to clear PL_curcop? |
From @cpansproutOn Wed Sep 07 16:55:31 2016, TODDR wrote:
It means that the op that PL_curcop was pointing to got freed. You can’t have PL_curcop pointing to a freed op, because Bad Things happen. But clearing PL_curcop also makes Bad Things happen, due to bugs elsewhere. BTW, this is a duplicate of #128597, which is fixed in blead by a2637ca. I have proposed that it be backported to 5.2[24], but nobody else has put forward any votes. -- Father Chrysostomos |
@cpansprout - Status changed from 'open' to 'pending release' |
From @xsawyerxOn 09/08/2016 04:40 AM, Father Chrysostomos via RT wrote:
One from you, one from Karl, one from me. |
From @khwilliamsonThank you for filing this report. You have helped make Perl better. With the release today of Perl 5.26.0, this and 210 other issues have been Perl 5.26.0 may be downloaded via: If you find that the problem persists, feel free to reopen this ticket. |
@khwilliamson - Status changed from 'pending release' to 'resolved' |
Migrated from rt.perl.org#129223 (status was 'resolved')
Searchable as RT129223$
The text was updated successfully, but these errors were encountered: