Subject: | Crash during install of Variable-Magic-0.58 running "t\18-opinfo.t" |
Date: | Thu, 24 Sep 2015 12:24:34 +0100 (BST) |
To: | bug-Variable-Magic [...] rt.cpan.org |
From: | Peter Stokes <peter [...] dadeos.co.uk> |
Hi,
I am experiencing an access violation crash in Perl 5.22.0 whilst attempting
running the "t\18-opinfo.t" test during installation of Variable-Magic-0.58 on
Windows.
The issue that I am encountering would appear to be similar to that reported in
http://www.cpantesters.org/cpan/report/cbda218a-6c4a-1014-b9c5-a00a324d4f1e,
which might suggest that
http://git.profvince.com/?p=perl/modules/Variable-Magic.git;a=commit;h=47305776af757964b20c9739d4d44ad35a3dfb90
may not have resolved the issue?
I’m afraid that the code contained within Magic.xs is somewhat beyond my
current understanding.
My testing thus far appears to indicate that the crash is 100% reproducible
with Perl 5.22.0, yet does not occur with Perl 5.20.3. I have also noticed that
the warning:
'Can't coerce GLOB to integer in transliteration (tr///) at (eval 117) line 1.
also only appears to have been introduced when using Perl 5.22.0.
As far as I can tell the crash occurs within Perl during the shutdown phase
performed at the end of running the "t\18-opinfo.t" script. The crash may be
avoided by not performing the transliteration test described on line 44 of
"t\18-opinfo.t"; more specifically the variant associated with the
‘VMG_OP_INFO_NAME’ verification, with the ‘VMG_OP_INFO_OBJECT’ variant being
the one that generates the 'Can't coerce GLOB to integer...' warning.
I have discovered that removing all tests except those defined by lines 37, 39,
and 44 appears to represent the minimal processing that still results in the
crash. Removing any of these remaining tests does not trigger the crash.
My suspicion is that this may be the result of changes to code associated with
the “B” module between Perl 5.20.3 and 5.22.0, having merely inspected the
contents of "Magic.xs" and observed some differences between the sources for
"ext\B\B.xs" within the Perl sources and the corresponding extracts of that
code contained within "Magic.xs". But I’m afraid my knowledge of any of the
code involved in insufficient for me to diagnose the issue further.
Would you be able to provide any thoughts on potential changes that I might
experiment with in order to avoid this crash?
Thanks
Peter