A further update on the RedHat 9 Storable issue ( Re: Storable Error (from: ams@wiw.org))

Abhijit has been digging further into the Storable issue folks were
experiencing on RedHat 9. He’s tracked it to a bug in perl itself, which
will be fixed in perl 5.8.1. Additionally, a new version of Storable
will soon be available which works around this issue. Collectively, I
suspect we all owe Abhijit quite a few beers.

Best,
Jesse

----- Forwarded message from Abhijit Menon-Sen ams@wiw.org -----From: Abhijit Menon-Sen ams@wiw.org
To: Nicholas Clark nick@ccl4.org
Cc: perl5-porters@perl.org, jesse@fsck.com, jhi@iki.fi,
vbono@vinny.org
Subject: Re: Storable Error
X-Spam-Status: No, hits=-5.9 required=7.0
tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,QUOTED_EMAIL_TEXT,
REFERENCES,REPLY_WITH_QUOTES
autolearn=ham version=2.55
X-Spam-Level:
X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp)

At 2003-08-09 00:35:36 +0100, nick@ccl4.org wrote:

I find that I can create hashes where key flags are set but HASKFLAGS
is not with the appended patch, and running t/op/utfhash.t with -DA

Nicholas, thank you ever so much. With your patch as a starting point, I
found: chop ($a = “\x{df}”.chr 256); $a{$a} = $a{“\x{df}”} = 1; %a = ();

The problem was much easier to track down thereafter. The appended patch
seems to fix it and break nothing else. I’ve applied it as #20587, but I
would appreciate it if you could cast an eye over it. (Can you think of
any cases I’ve missed?)

Jesse, this should fix the “Storable problem” people have reported under
RH9. It seems there are some things that Red Hat’s Perl can’t be blamed
for, after all. :slight_smile:

Jarkko, please absorb this into 5.8.1 after Nicholas writes a test^W^W^W
comments on it.

– ams

— hv.c~ Sat Aug 9 23:43:53 2003
+++ hv.c Sun Aug 10 00:25:09 2003
@@ -308,6 +308,8 @@ S_hv_fetch_flags(pTHX_ HV *hv, const cha
}
else
HeKFLAGS(entry) = flags;

  •        if (flags)
    
  •            HvHASKFLAGS_on(hv);
       }
       if (flags & HVhek_FREEKEY)
           Safefree(key);
    

@@ -478,6 +480,8 @@ Perl_hv_fetch_ent(pTHX_ HV *hv, SV *keys
}
else
HeKFLAGS(entry) = flags;

  •        if (flags)
    
  •            HvHASKFLAGS_on(hv);
       }
      if (key != keysave)
          Safefree(key);
    

----- End forwarded message -----

Request Tracker... So much more than a help desk — Best Practical Solutions – Trouble Ticketing. Free.