Bug #54250 [Bgs]: date_default_timezone_set stat()'s whole /usr/share/zoneinfo upon first call

From: Date: Wed, 16 Mar 2011 23:10:44 +0000
Subject: Bug #54250 [Bgs]: date_default_timezone_set stat()'s whole /usr/share/zoneinfo upon first call
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-159537@lists.php.net to get a copy of this message
Edit report at http://bugs.php.net/bug.php?id=54250&edit=1

 ID:                 54250
 Updated by:         rasmus@php.net
 Reported by:        maciej at wiercinski dot net
 Summary:            date_default_timezone_set stat()'s whole
                     /usr/share/zoneinfo upon first call
 Status:             Bogus
 Type:               Bug
 Package:            Date/time related
 Operating System:   Linux 2.6
 PHP Version:        5.3.5
 Block user comment: N
 Private report:     N

 New Comment:

No it won't. You can distribute a binary pecl extension without needing
"PECL". 
I'm not even sure what you mean by "PECL" here. An individual pecl
extension is 
just a simple shared library. Nothing more.


Previous Comments:
------------------------------------------------------------------------
[2011-03-17 00:02:47] maciej at wiercinski dot net

rasmus@php.net: 

It will still force them to distribute PECL (may be a concern for people

building embedded/very small systems shipped with PHP). 

I don't really know PHP code, had just a very brief look at the patch
itself and 
related functions, so what I'm saying may be completely invalid. What
about 
compiling timezone data into dynamically loaded library, which they
could ship 
separately of PECL/PHP itself / easily replace with calls to theirs?

------------------------------------------------------------------------
[2011-03-16 22:56:15] rasmus@php.net

Why not just make pecl/timezone dependent on the system timezone update.
It seems 
easy enough to me. Your PHP package depends on pecl/timezone and
pecl/timezone 
depends on the system timezone package. That should keep it all in
synch.

------------------------------------------------------------------------
[2011-03-16 22:52:34] maciej at wiercinski dot net

johannes@php.net: 

I can see at least two problems Debian (and other distribution)
maintainers will 
have with the solution you have proposed. They would have to make PHP
dependent 
on PECL, which is currently not the case (at least not in Debian). On
other hand 
it will eventually lead to a situation in which PHP's timezone update
has been 
rolled out and system's not, or vice-versa.

------------------------------------------------------------------------
[2011-03-16 18:56:32] johannes@php.net

vJust a small comment on

> The PHP tzdata changes are mixed in with the
> mainline development, and sometimes depend on
> other changes within the engine, so it's not
> really feasible to cherry pick out the changes
> into a stable release, even if we wanted to.

This is not true. Distributions can distribute the timezone update using
the pecl/timzeone package. No messing with engine stuff needed.

------------------------------------------------------------------------
[2011-03-15 18:52:29] seanius at debian dot org

Hi guys,

We'll take up further discussion on the bug over there, but thought I
would cut/paste the (slightly amended) initial response here just for
posterity's sake.

===

Hi Maciej,

Does this actually cause a quantifiable and significant performance
regression?  This possibility of performance issues was discussed some
time ago but it was decided that the stat calls would just hit the
kernel
fs cache and not cause any serious problems.

If there are indeed problems, there are certainly ways this could be
worked around, but it would add even further complexity
to the patch which we'd all prefer to avoid if possible.


To give you some extra background, since the PHP authors certainly have
their own take on the situation: EVERY serious linux distribution
ships this patch in some form.  Redhat, Fedora, Debian, Ubuntu, SLES,
Opensuse (okay, maybe not Gentoo, but anyway...) all ship with this
patch.
So please keep that in mind when you here both sides of this argument
:)


The problem is that when the OS distributors release a timezone update,
they don't want to *also* have to go package by package updating
individual and "customized" timezone databases that might be embedded
in a given application.  Neither do they want to continuously update
the
version of PHP in their "stable" releases and have to deal with the
numerous
regressions that would result.  The PHP tzdata changes are mixed in with
the
mainline development, and sometimes depend on other changes within the
engine, so it's not really feasible to cherry pick out the changes into
a stable release, even if we wanted to.

This is a point of disagreement with the PHP authors, who want to have
control over this aspect of the engine themselves (and they certainly
have
their justifications, such as systems with outdated or nonexistant
tzdata,
plus they add some extra TZ annotations in their private copy).
Unfortunately they are not interested in providing any other way to
work
around this issue, despite the periodic overture from us or RedHat.
The invitation is still open to try and find a reasonable technical
solution for this, but I have been led to beleive that Derick has
really
dug in his heels on the issue and it's not worth any of our time to
raise a big stink about it.

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    http://bugs.php.net/bug.php?id=54250


-- 
Edit this bug report at http://bugs.php.net/bug.php?id=54250&edit=1


Thread (11 messages)

« previous php.bugs (#159537) next »