Skip Menu |

This queue is for tickets about the CGI-Session CPAN distribution.

Report information
The Basics
Id: 37877
Status: resolved
Priority: 0/
Queue: CGI-Session

People
Owner: Nobody in particular
Requestors: greanie [...] yahoo.com
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 4.35
Fixed in: (no value)



Subject: Can't locate errstr via package "CGI::Session::Serialize::storable"
Hello, I am moving from Apache::Session to CGI::Session because of CGI::Session's ability to automatically start a new instance if an id to an expired one is passed, as well as the ability to change the serializer. I am using a wrapper class, passing in the session id to the contructor, using the new method to load the session, as follows: my $session = CGI::Session->new( "driver:mysql;serializer:storable", $sid, #passed into constructor { Handle => $_dbh } ) or die CGI::Session->errstr(); My application is dying with the following error message: Can't locate errstr via package "CGI::Session::Serialize::storable" at /usr/lib/perl5/site_perl/5.8.8/CGI/Session.pm line 812 My system is: perl 5.8.8 CGI::Session 4.35 (downloaded today) Linux Gentoo 2.6.22 running on i686 Modperl 2 Thanks for the support!
Subject: Re: [rt.cpan.org #37877] Can't locate errstr via package "CGI::Session::Serialize::storable"
Date: Wed, 23 Jul 2008 10:03:50 -0400
To: bug-CGI-Session [...] rt.cpan.org
From: Mark Stosberg <mark [...] summersault.com>
Show quoted text
> I am moving from Apache::Session to CGI::Session because of > CGI::Session's ability to automatically start a new instance if an id to > an expired one is passed, as well as the ability to change the > serializer. I am using a wrapper class, passing in the session id to > the contructor, using the new method to load the session, as follows: > > my $session = CGI::Session->new( > "driver:mysql;serializer:storable", > $sid, #passed into constructor > { Handle => $_dbh } > ) or die CGI::Session->errstr(); > > My application is dying with the following error message: > > Can't locate errstr via package "CGI::Session::Serialize::storable" > at /usr/lib/perl5/site_perl/5.8.8/CGI/Session.pm line 812 > > My system is: > > perl 5.8.8 > CGI::Session 4.35 (downloaded today) > Linux Gentoo 2.6.22 running on i686 > Modperl 2
Just guessing: If line 812 has a call to $class->errstr, try changing into it to CGI::Session->errstr If that's the case, let us know how that works! Mark
Subject: Re: [rt.cpan.org #37877] Can't locate errstr via package "CGI::Session::Serialize::storable"
Date: Wed, 23 Jul 2008 10:41:19 -0700 (PDT)
To: bug-CGI-Session [...] rt.cpan.org
From: Michael Greenish <greanie [...] yahoo.com>
Hello Mark, That seems to have taken care of that error. I get a different error: new(): failed: load() can't thaw() data using CGI::Session::Serialize::storable at /path/to/web-app/classes/session_wrapper.pm line xx So it fails at the new call in my session wrapper. Funny thing is that I cleared the session cookie before reloading the page so I am not sure what session it is trying to load. I did just update Storable via CPAN but if sid is undef, it should create a new session, not try to load one. If I use the Default serializer, I have no problems. However, I have other classes and that interact with the sessio nthat are dependent on Storable.pm so I would much prefer to use Storable.pm. Thanks for the support. Mike Show quoted text
----- Original Message ---- From: "mark@summersault.com via RT" <bug-CGI-Session@rt.cpan.org> To: greanie@yahoo.com Sent: Wednesday, July 23, 2008 2:05:43 PM Subject: Re: [rt.cpan.org #37877] Can't locate errstr via package "CGI::Session::Serialize::storable" <URL: http://rt.cpan.org/Ticket/Display.html?id=37877 >
> I am moving from Apache::Session to CGI::Session because of > CGI::Session's ability to automatically start a new instance if an id to > an expired one is passed, as well as the ability to change the > serializer. I am using a wrapper class, passing in the session id to > the contructor, using the new method to load the session, as follows: > > my $session = CGI::Session->new( > "driver:mysql;serializer:storable", > $sid, #passed into constructor > { Handle => $_dbh } > ) or die CGI::Session->errstr(); > > My application is dying with the following error message: > > Can't locate errstr via package "CGI::Session::Serialize::storable" > at /usr/lib/perl5/site_perl/5.8.8/CGI/Session.pm line 812 > > My system is: > > perl 5.8.8 > CGI::Session 4.35 (downloaded today) > Linux Gentoo 2.6.22 running on i686 > Modperl 2
Just guessing: If line 812 has a call to $class->errstr, try changing into it to CGI::Session->errstr If that's the case, let us know how that works! Mark
Subject: Re: [rt.cpan.org #37877] Can't locate errstr via package "CGI::Session::Serialize::storable"
Date: Wed, 23 Jul 2008 14:06:36 -0400
To: bug-CGI-Session [...] rt.cpan.org
From: Mark Stosberg <mark [...] summersault.com>
Show quoted text
> That seems to have taken care of that error.
Thanks. We'll think about the best way to patch this properly. Show quoted text
> I get a different error: > > new(): failed: load() can't thaw() data using > CGI::Session::Serialize::storable at > /path/to/web-app/classes/session_wrapper.pm line xx > > So it fails at the new call in my session wrapper. > > Funny thing is that I cleared the session cookie before reloading the page so > I am not sure what session it is trying to load. I did just update Storable > via CPAN but if sid is undef, it should create a new session, not try to load > one. > > > If I use the Default serializer, I have no problems. However, I have other > classes and that interact with the sessio nthat are dependent on Storable.pm > so I would much prefer to use Storable.pm.
Mike, The format that Storable uses may not be compatible from one machine to another. Have you moved the session files between architectures recently? You might also checked the ChangeLog for Storable for incompatible changes, or try downgrading to see if that fixes it. Try to write a new test for our test suite that reproduces the error. If you can't get the reduced test case to fail, the problem is with your use of it, or your application or environment. If you can write a new test that fails, we're happy to look into further. Mark -- . . . . . . . . . . . . . . . . . . . . . . . . . . . Mark Stosberg Principal Developer mark@summersault.com Summersault, LLC 765-939-9301 ext 202 database driven websites . . . . . http://www.summersault.com/ . . . . . . . .
I found this bug. Thanks for the report. It should be fixed in 4.38. Mark