Subject: | Global Destruction die on Strawberry Perl |
Date: | Thu, 23 Aug 2018 13:07:08 -0500 |
To: | <bug-Win32-TieRegistry [...] rt.cpan.org> |
From: | "Charles Frolick" <cfrolick [...] eprocessingnetwork.com> |
We are getting the following error frequently in our logs, from multiple
Perl scripts:
Can't call method "FETCH" on an undefined value at
C:/strawberry/perl/site/lib/Win32/TieRegistry.pm line 1488 during global
destruction.
Carp at C:/strawberry/perl/site/lib/Win32/TieRegistry.pm line 1488.
eval {...} called at
C:/strawberry/perl/site/lib/Win32/TieRegistry.pm line 1488
Win32::TieRegistry::DESTROY(Win32::TieRegistry=HASH(0x1f7cd80))
called at query.pl line 0
We have been able to mitigate the issue with following change:
--- a/Win32/TieRegistry.pm
+++ b/Win32/TieRegistry.pm
@@ -1482,6 +1482,7 @@ sub NEXTKEY
sub DESTROY
{
+ return if ${^GLOBAL_PHASE} eq 'DESTRUCT';
my $self= shift(@_);
return if tied(%$self);
my $unload;
We have seen the issue with Strawberry Perl 5.20.2 64bit and 5.26.2 64bit.
Thank you,
Chuck Frolick
eProcessingNetwork
<mailto:cfrolick@eprocessingnetwork.com> cfrolick@eprocessingnetwork.com
(713) 867-8451