Mailing List Archive

System error: timezone could not be loaded
Hi. I finally got bricolage installed and running. However, I cannot
get any page that tries to do a timezone lookup to load (which is most
of them) such as saving a new admin password or clicking on the "New
Story" link.

Version: bricolage-1.11.3
Platform: Dragonfly BSD

==========
Error:

System error

error: The timezone 'America/Los_Angeles' could not be loaded, or is an invalid name.
context: unable to open file
code stack: /usr/pkg/lib/perl5/site_perl/5.10.0/DateTime/TimeZone.pm:92
/usr/pkg/lib/perl5/site_perl/5.10.0/i386-dragonfly-thread-multi/DateTime.pm:1891
/usr/pkg/lib/perl5/site_perl/5.10.0/i386-dragonfly-thread-multi/DateTime.pm:475
/usr/pkg/bricolage/lib/Bric/Util/Time.pm:182
/usr/pkg/bricolage/comp/errors/500.mc:39
/usr/pkg/bricolage/comp/autohandler:7

Raw Error:

Trace begun at /usr/pkg/lib/perl5/site_perl/5.10.0/HTML/Mason/Exceptions.pm line 129
HTML::Mason::Exceptions::rethrow_exception('The timezone \'America/Los_Angeles\' could not be loaded, or is an invalid name.^J') called at /usr/pkg/lib/perl5/site_perl/5.10.0/DateTime/TimeZone.pm
line 92
DateTime::TimeZone::new(undef, 'name', 'America/Los_Angeles') called at /usr/pkg/lib/perl5/site_perl/5.10.0/i386-dragonfly-thread-multi/DateTime.pm line 1891
DateTime::set_time_zone('DateTime=HASH(0x2b102a80)', 'America/Los_Angeles') called at /usr/pkg/lib/perl5/site_perl/5.10.0/i386-dragonfly-thread-multi/DateTime.pm line 475
DateTime::from_epoch(undef, 'epoch', 1266561580, 'time_zone', 'America/Los_Angeles') called at /usr/pkg/bricolage/lib/Bric/Util/Time.pm line 182
Bric::Util::Time::strfdate(1266561580) called at /usr/pkg/bricolage/comp/errors/500.mc line 39
HTML::Mason::Commands::__ANON__ at /usr/pkg/lib/perl5/site_perl/5.10.0/HTML/Mason/Component.pm line 135
HTML::Mason::Component::run('HTML::Mason::Component::FileBased=HASH(0x2b0bd120)') called at /usr/pkg/lib/perl5/site_perl/5.10.0/HTML/Mason/Request.pm line 1302
eval {...} at /usr/pkg/lib/perl5/site_perl/5.10.0/HTML/Mason/Request.pm line 1292
HTML::Mason::Request::comp(undef, undef, undef) called at /usr/pkg/lib/perl5/site_perl/5.10.0/HTML/Mason/Request.pm line 955
HTML::Mason::Request::call_next('HTML::Mason::Request::ApacheHandler=HASH(0x2b102a70)') called at /usr/pkg/bricolage/comp/autohandler line 7
HTML::Mason::Commands::__ANON__ at /usr/pkg/lib/perl5/site_perl/5.10.0/HTML/Mason/Component.pm line 135
HTML::Mason::Component::run('HTML::Mason::Component::FileBased=HASH(0x2b0bd500)') called at /usr/pkg/lib/perl5/site_perl/5.10.0/HTML/Mason/Request.pm line 1297
eval {...} at /usr/pkg/lib/perl5/site_perl/5.10.0/HTML/Mason/Request.pm line 1292
HTML::Mason::Request::comp(undef, undef, undef) called at /usr/pkg/lib/perl5/site_perl/5.10.0/HTML/Mason/Request.pm line 481
eval {...} at /usr/pkg/lib/perl5/site_perl/5.10.0/HTML/Mason/Request.pm line 481
eval {...} at /usr/pkg/lib/perl5/site_perl/5.10.0/HTML/Mason/Request.pm line 433
HTML::Mason::Request::exec('HTML::Mason::Request::ApacheHandler=HASH(0x2b102a70)') called at /usr/pkg/lib/perl5/site_perl/5.10.0/HTML/Mason/ApacheHandler.pm line 168
HTML::Mason::Request::ApacheHandler::exec('HTML::Mason::Request::ApacheHandler=HASH(0x2b102a70)') called at /usr/pkg/lib/perl5/site_perl/5.10.0/HTML/Mason/ApacheHandler.pm line 825
HTML::Mason::ApacheHandler::handle_request('HTML::Mason::ApacheHandler=HASH(0x2aec6f40)', 'Apache2::RequestRec=SCALAR(0x2b10e570)') called at /usr/pkg/bricolage/lib/Bric/App/Handler.pm line 374
Bric::App::Handler::handle_err('Apache2::RequestRec=SCALAR(0x2b10e570)', '') called at /usr/pkg/bricolage/lib/Bric/App/Handler.pm line 315
Bric::App::Handler::handler('Apache2::RequestRec=SCALAR(0x2b10e570)') called at -e line 0
eval {...} at -e line 0
==========


The time zone files are installed.

$ ls -l /usr/share/zoneinfo/America/Los_Angeles
-rw-r--r-- 1 root wheel - 2819 Sep 10 07:41 /usr/share/zoneinfo/America/Los_Angeles


- Vince
Re: System error: timezone could not be loaded [ In reply to ]
On Feb 18, 2010, at 10:48 PM, Vincent Stemen wrote:

> Hi. I finally got bricolage installed and running. However, I cannot
> get any page that tries to do a timezone lookup to load (which is most
> of them) such as saving a new admin password or clicking on the "New
> Story" link.
>
> Version: bricolage-1.11.3
> Platform: Dragonfly BSD
>
> ==========
> Error:
>
> System error
>
> error: The timezone 'America/Los_Angeles' could not be loaded, or is an invalid name.
> context: unable to open file
> code stack: /usr/pkg/lib/perl5/site_perl/5.10.0/DateTime/TimeZone.pm:92
> /usr/pkg/lib/perl5/site_perl/5.10.0/i386-dragonfly-thread-multi/DateTime.pm:1891
> /usr/pkg/lib/perl5/site_perl/5.10.0/i386-dragonfly-thread-multi/DateTime.pm:475
> /usr/pkg/bricolage/lib/Bric/Util/Time.pm:182
> /usr/pkg/bricolage/comp/errors/500.mc:39
> /usr/pkg/bricolage/comp/autohandler:7

Do you have the system time zones installed?

I think you'll have to ask on the datetime list: http://datetime.perl.org/?MailingList

Best,

David
Re: System error: timezone could not be loaded [ In reply to ]
On Fri, Feb 19, 2010 at 08:59:42AM -0800, David E. Wheeler wrote:

> Do you have the system time zones installed?
>
> I think you'll have to ask on the datetime list: http://datetime.perl.org/?MailingList
>
> Best,
>
> David

Yes. See the very bottom of my origional posting :-).
Re: System error: timezone could not be loaded [ In reply to ]
On Feb 19, 2010, at 9:07 AM, Vincent Stemen wrote:

> Yes. See the very bottom of my origional posting :-).

Yeah, in that case it's something for the DateTime guys, I'm afraid.

Best,

David
Re: System error: timezone could not be loaded [ In reply to ]
Hi,

> error: The timezone 'America/Los_Angeles' could not be loaded, or is an invalid name.
<snip>
> The time zone files are installed.
>
> $ ls -l /usr/share/zoneinfo/America/Los_Angeles
> -rw-r--r-- 1 root wheel - 2819 Sep 10 07:41 /usr/share/zoneinfo/America/Los_Angeles

The DateTime modules don't use the system timezone files, but rather
come with their own. Do you have one here:

/usr/lib64/perl5/vendor_perl/5.10.1/DateTime/TimeZone/America/Los_Angeles.pm

(or thereabouts). This should be from DateTime::TimeZone package:

http://search.cpan.org/~drolsky/DateTime-TimeZone-1.10/lib/DateTime/TimeZone.pm

and you can see if you have it installed with:

admin@sitespeed ~ $ perl -MDateTime::TimeZone -le 'print join("\n", DateTime::TimeZone->all_names)' | grep America/Los_
America/Los_Angeles
admin@sitespeed ~ $

Cheers,

Alex
--
Alex Krohn <alex@gossamer-threads.com>
Gossamer Threads Inc. http://www.gossamer-threads.com/
Tel: (604) 687-5804 Fax: (604) 687-5806
Re: System error: timezone could not be loaded [ In reply to ]
On Fri, Feb 19, 2010 at 09:34:37AM -0800, Alex Krohn wrote:
> Hi,
>
> > error: The timezone 'America/Los_Angeles' could not be loaded, or is an invalid name.
> <snip>
> > The time zone files are installed.
> >
> > $ ls -l /usr/share/zoneinfo/America/Los_Angeles
> > -rw-r--r-- 1 root wheel - 2819 Sep 10 07:41 /usr/share/zoneinfo/America/Los_Angeles
>
> The DateTime modules don't use the system timezone files, but rather
> come with their own. Do you have one here:
>
> /usr/lib64/perl5/vendor_perl/5.10.1/DateTime/TimeZone/America/Los_Angeles.pm
>
> (or thereabouts). This should be from DateTime::TimeZone package:
>
> http://search.cpan.org/~drolsky/DateTime-TimeZone-1.10/lib/DateTime/TimeZone.pm
>
> and you can see if you have it installed with:
>
> admin@sitespeed ~ $ perl -MDateTime::TimeZone -le 'print join("\n", DateTime::TimeZone->all_names)' | grep America/Los_
> America/Los_Angeles
>
> Cheers,
>
> Alex
> --
> Alex Krohn <alex@gossamer-threads.com>
> Gossamer Threads Inc. http://www.gossamer-threads.com/
> Tel: (604) 687-5804 Fax: (604) 687-5806

Ah. I see. Thanks. It seems to be installed properly.

$ perl -MDateTime::TimeZone -le 'print join("\n", DateTime::TimeZone->all_names)' | grep America/Los
America/Los_Angeles

$ ls -l /usr/pkg/lib/perl5/site_perl/5.10.0/DateTime/TimeZone/America/Los_Angeles.pm
-r--r--r-- 1 root wheel 15162 Feb 17 00:09 /usr/pkg/lib/perl5/site_perl/5.10.0/DateTime/TimeZone/America/Los_Angeles.pm

I guess I may have to contact the DateTime guys as David suggested.
I may first try running the DateTime module through it's self tests from the
sources and see what happens. I thought the self tests for all the
modules passed already, though, when I installed the Bricolage bundle.

- Vince
Re: System error: timezone could not be loaded [ In reply to ]
Well... I'm not yet sure I should go to the DateTime guys about this
yet. I have done some more testing and thought I should show you my
findings first to see what you think. I cannot reproduce the problem
outside of bricolage.

This piece of code in /usr/pkg/lib/perl5/site_perl/5.10.0/DateTime/TimeZone.pm
at line 79 is generating the error.

my $e = do { local $@;
local $SIG{__DIE__};
eval "require $real_class";
$@;
};

This is what $real_class contains
$real_class = "DateTime::TimeZone::America::Los_Angeles"

Error returned in $e
Can't locate DateTime/TimeZone/America/Los_Angeles.pm in @INC (@INC contains:
contains: /usr/pkg/bricolage/lib
/usr/pkg/lib/perl5/site_perl/5.10.0/i386-dragonfly-thread-multi
/usr/pkg/lib/perl5/site_perl/5.10.0
/usr/pkg/lib/perl5/vendor_perl/5.10.0/i386-dragonfly-thread-multi
/usr/pkg/lib/perl5/vendor_perl/5.10.0 /usr/pkg/lib/perl5/vendor_perl
/usr/pkg/lib/perl5/5.10.0/i386-dragonfly-thread-multi /usr/pkg/lib/perl5/5.10.0
. /usr/pkg) at (eval 1416) line 3, <GEN1> line 47.

Which causes the error I am getting under bricolage of

error: The timezone 'America/Los_Angeles' could not be loaded, or is an invalid name.

when TimeZone.pm checks $e on line 86.

Time zone file path is
-r--r--r-- 1 root wheel 15162 Feb 17 00:09 /usr/pkg/lib/perl5/site_perl/5.10.0/DateTime/TimeZone/America/Los_Angeles.pm

/usr/pkg/lib/perl5/site_perl/5.10.0 is clearly in the @INC path, yet it
cannot find it, only when running under bricolage.


I copied the code from TimeZone.pm into a test script outside of
bricolage, like this,

#!/usr/pkg/bin/perl -w

$real_class = "DateTime::TimeZone::America::Los_Angeles";

my $e = do {
local $@;
local $SIG{__DIE__};
eval "require $real_class";
$@;
};

print "e = '$e'\n";

and it work just fine. No error was returned in $e.
Weird.


- Vince
Re: System error: timezone could not be loaded [ In reply to ]
Hi Vincent,

> Time zone file path is
> -r--r--r-- 1 root wheel 15162 Feb 17 00:09 /usr/pkg/lib/perl5/site_perl/5.10.0/DateTime/TimeZone/America/Los_Angeles.pm
>
> /usr/pkg/lib/perl5/site_perl/5.10.0 is clearly in the @INC path, yet it
> cannot find it, only when running under bricolage.

Can you print @INC in bricolage?

Cheers,

Alex

--
Alex Krohn <alex@gossamer-threads.com>
Gossamer Threads Inc. http://www.gossamer-threads.com/
Tel: (604) 687-5804 Fax: (604) 687-5806
Re: System error: timezone could not be loaded [ In reply to ]
On Sat, Feb 20, 2010 at 09:33:44AM -0800, Alex Krohn wrote:
> Hi Vincent,
>
> > Time zone file path is
> > -r--r--r-- 1 root wheel 15162 Feb 17 00:09 /usr/pkg/lib/perl5/site_perl/5.10.0/DateTime/TimeZone/America/Los_Angeles.pm
> >
> > /usr/pkg/lib/perl5/site_perl/5.10.0 is clearly in the @INC path, yet it
> > cannot find it, only when running under bricolage.
>
> Can you print @INC in bricolage?
>
> Cheers,
>
> Alex


I hope I understood your request. I printed this in strfdate()
in lib/Bric/Util/Time.pm, which is the last bricolage file before it
enters DateTime.pm outside of the bricolage source tree.

@INC = /usr/pkg/bricolage/lib
/usr/pkg/lib/perl5/site_perl/5.10.0/i386-dragonfly-thread-multi
/usr/pkg/lib/perl5/site_perl/5.10.0
/usr/pkg/lib/perl5/vendor_perl/5.10.0/i386-dragonfly-thread-multi
/usr/pkg/lib/perl5/vendor_perl/5.10.0 /usr/pkg/lib/perl5/vendor_perl
/usr/pkg/lib/perl5/5.10.0/i386-dragonfly-thread-multi
/usr/pkg/lib/perl5/5.10.0 . /usr/pkg
Re: System error: timezone could not be loaded [ In reply to ]
On Fri, Feb 19, 2010 at 12:48:35AM -0600, Vincent Stemen wrote:
> Hi. I finally got bricolage installed and running. However, I cannot
> get any page that tries to do a timezone lookup to load (which is most
> of them) such as saving a new admin password or clicking on the "New
> Story" link.
>
> Version: bricolage-1.11.3
> Platform: Dragonfly BSD
>
> ==========
> Error:
>
> System error
>
> error: The timezone 'America/Los_Angeles' could not be loaded, or is an invalid name.
> context: unable to open file
> code stack: /usr/pkg/lib/perl5/site_perl/5.10.0/DateTime/TimeZone.pm:92
> /usr/pkg/lib/perl5/site_perl/5.10.0/i386-dragonfly-thread-multi/DateTime.pm:1891
> /usr/pkg/lib/perl5/site_perl/5.10.0/i386-dragonfly-thread-multi/DateTime.pm:475
> /usr/pkg/bricolage/lib/Bric/Util/Time.pm:182
> /usr/pkg/bricolage/comp/errors/500.mc:39
> /usr/pkg/bricolage/comp/autohandler:7

Disregard. Problem solved!

Yay! Bricolage finally seems to be working so we an evaluate it.

It turned out that a bunch of the perl modules, include the DateTime
ones, got installed with parent directories that did not have world read
access, so the apache server did not have permission to read them.

I had verified the perms on the module files, but did not trace back up
the directory tree. I don't know why I did not think to do that sooner.

Apparently the module makefiles are not setting directory permissions so
they are getting created with the default umask.

To those who tried to help, I appreciate it and apologize for using your
time.

- Vince