Evgheni,

The first thing I noticed was the disparate file sizes that all of your compiled Asia/Gaza.* files have.  It looks like all of the larger (~2.3 kB) files are yielding the correct/expected results (EET and EEST), while the smaller (~1.2 kB) files are not.

I suspect that, in the cases of the smaller files, there is likely no real data in the v1 data block, which is to say that the first 51 bytes would look something like this:
$ hexdump -n51 -C Asia/Gaza
00000000  54 5a 69 66 33 00 00 00  00 00 00 00 00 00 00 00  |TZif3...........|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000020  00 00 00 00 00 00 00 01  00 00 00 01 00 00 00 00  |................|
00000030  00 00 00                                          |...|
00000033


For such files, the useful data, so to speak, is in the version 2+ data block which begins directly after these bytes.

(The format of these data blocks are described in detail in §3.2 of RFC8536.)
https://www.rfc-editor.org/rfc/rfc8536.html#section-3.2

The next thing I recalled is that, beginning with version 2020b, our packaged version of zic now defaults to using the "-b slim" option which removes the v1 data block in this way, since it is dependent on 32-bit timestamps that will rollover in early 2038 and is thus decreasing in utility as that date nears.
https://github.com/eggert/tz/commit/6ba6f2117b95eab345a7ed9159cef939e30c4cd3
https://mm.icann.org/pipermail/tz/2020-June/029125.html

It seems that, for now, the Ubuntu maintainers have decided to still compile with "-b fat" to maintain the v1 data block, which is why their files seem to work for you.

So this brings us the logical follow-on question: Why is the system you're testing only looking at the (legacy) 32-bit data in the v1 data block, and not using the 64-bit data in the v2+ data block?  Please let us know more about the system you're running so that we can get a better sense of which platforms have successfully made the transition to properly using TZif version 2+ data for 64-bit timestamps, and which haven't.

--
Tim Parenti


On Mon, 1 Mar 2021 at 14:19, Evgheni Antropov via tz <tz@iana.org> wrote:

Dear tzdata maintainers,

 

I have found that after tzdata2020b release something has gone wrong with Asia/Gaza timezone, which is related to Palestine.

For checking I used this information https://www.timeanddate.com/worldclock/palestine/gaza and

for DST at 2019: https://www.timeanddate.com/time/change/palestine/gaza?year=2019

 for DST at 2020: https://www.timeanddate.com/time/change/palestine/gaza?year=2020

 for DST at 2021: https://www.timeanddate.com/time/change/palestine/gaza?year=2021

 

I compiled all last release of tzdata from 2019c to 2021a and was comparing them with Ubuntu packages for 2020b on groovy (20.10) and 2021a on bionic (18.04).

 

If several changes in the date of DST for different years can be related with last applied laws of DST in Palestine (described here http://mm.icann.org/pipermail/tz/2020-October/029376.html), but broken timezone output in letters or numbers is speaking about any error in the this time zone code.

Can you investigate this too ?

 

On screenshot you can see all my investigation:

 

Also I share all commands and listing for your execution itself:

 

[root@Router8:~]# ls -la /etc/localtime

lrwxrwxrwx 1 root root 35 Mar  4  2021 /etc/localtime -> /usr/share/zoneinfo/posix/Asia/Gaza

[root@Router8:~]# ls -la /usr/share/zoneinfo/posix/Asia/Gaza*

lrwxrwxrwx 1 root root   41 Mar 27 01:00 /usr/share/zoneinfo/posix/Asia/Gaza -> /usr/share/zoneinfo/posix/Asia/Gaza.2019c

-rw-r--r-- 1 root root 2316 Oct 22 09:34 /usr/share/zoneinfo/posix/Asia/Gaza.2019c

-rw-r--r-- 1 root root 2316 Oct 30  2020 /usr/share/zoneinfo/posix/Asia/Gaza.2020a

-rw-r--r-- 1 root root 1166 Oct 30  2020 /usr/share/zoneinfo/posix/Asia/Gaza.2020b

-rw-r--r-- 1 root root 1166 Oct 30  2020 /usr/share/zoneinfo/posix/Asia/Gaza.2020c

-rw-r--r-- 1 root root 1195 Oct 30  2020 /usr/share/zoneinfo/posix/Asia/Gaza.2020d

-rw-r--r-- 1 root root 1213 Mar  1  2021 /usr/share/zoneinfo/posix/Asia/Gaza.2021a

-rw-r--r-- 1 root root 2316 Oct 19  2020 /usr/share/zoneinfo/posix/Asia/Gaza.ubuntu.2020b

-rw-r--r-- 1 root root 2459 Jan 27  2021 /usr/share/zoneinfo/posix/Asia/Gaza.ubuntu.2021a

[root@Router8:~]# date +"%Y%m%d %T" -s "20190328 23:59:55" ; sleep 4; date +%c%t%z%t%Z; sleep 2 ; date +%c%t%z%t%Z

20190328 23:59:55

Thu Mar 28 23:59:59 2019        +0200   EET

Fri Mar 29 01:00:01 2019        +0300   EEST

[root@Router8:~]# ln -sfv /usr/share/zoneinfo/posix/Asia/Gaza.2020a /usr/share/zoneinfo/posix/Asia/Gaza

'/usr/share/zoneinfo/posix/Asia/Gaza' -> '/usr/share/zoneinfo/posix/Asia/Gaza.2020a'

[root@Router8:~]# date +"%Y%m%d %T" -s "20200326 23:59:55" ; sleep 4; date +%c%t%z%t%Z; sleep 2 ; date +%c%t%z%t%Z

20200326 23:59:55

Thu Mar 26 23:59:59 2020        +0200   EET

Fri Mar 27 01:00:01 2020        +0300   EEST

[root@Router8:~]# ln -sfv /usr/share/zoneinfo/posix/Asia/Gaza.2020b /usr/share/zoneinfo/posix/Asia/Gaza

'/usr/share/zoneinfo/posix/Asia/Gaza' -> '/usr/share/zoneinfo/posix/Asia/Gaza.2020b'

[root@Router8:~]# date +"%Y%m%d %T" -s "20200326 23:59:55" ; sleep 4; date +%c%t%z%t%Z; sleep 2 ; date +%c%t%z%t%Z

20200326 23:59:55

Thu Mar 26 23:59:59 2020        +0000

Fri Mar 27 00:00:01 2020        +0000

[root@Router8:~]# ln -sfv /usr/share/zoneinfo/posix/Asia/Gaza.2020c /usr/share/zoneinfo/posix/Asia/Gaza

'/usr/share/zoneinfo/posix/Asia/Gaza' -> '/usr/share/zoneinfo/posix/Asia/Gaza.2020c'

[root@Router8:~]# date +"%Y%m%d %T" -s "20200326 23:59:55" ; sleep 4; date +%c%t%z%t%Z; sleep 2 ; date +%c%t%z%t%Z

20200326 23:59:55

Thu Mar 26 23:59:59 2020        +0000

Fri Mar 27 00:00:01 2020        +0000

[root@Router8:~]# ln -sfv /usr/share/zoneinfo/posix/Asia/Gaza.ubuntu.2020b /usr/share/zoneinfo/posix/Asia/Gaza

'/usr/share/zoneinfo/posix/Asia/Gaza' -> '/usr/share/zoneinfo/posix/Asia/Gaza.ubuntu.2020b'

[root@Router8:~]# date +"%Y%m%d %T" -s "20200326 23:59:55" ; sleep 4; date +%c%t%z%t%Z; sleep 2 ; date +%c%t%z%t%Z

20200326 23:59:55

Thu Mar 26 23:59:59 2020        +0200   EET

Fri Mar 27 01:00:01 2020        +0300   EEST

[root@Router8:~]# ln -sfv /usr/share/zoneinfo/posix/Asia/Gaza.2021a /usr/share/zoneinfo/posix/Asia/Gaza

'/usr/share/zoneinfo/posix/Asia/Gaza' -> '/usr/share/zoneinfo/posix/Asia/Gaza.2021a'

[root@Router8:~]# date +"%Y%m%d %T" -s "20210326 23:59:55" ; sleep 4; date +%c%t%z%t%Z; sleep 2 ; date +%c%t%z%t%Z

20210326 23:59:55

Fri Mar 26 23:59:59 2021        +0000

Sat Mar 27 00:00:01 2021        +0000

[root@Router8:~]# ln -sfv /usr/share/zoneinfo/posix/Asia/Gaza.ubuntu.2021a /usr/share/zoneinfo/posix/Asia/Gaza

'/usr/share/zoneinfo/posix/Asia/Gaza' -> '/usr/share/zoneinfo/posix/Asia/Gaza.ubuntu.2021a'

[root@Router8:~]# date +"%Y%m%d %T" -s "20210326 23:59:55" ; sleep 4; date +%c%t%z%t%Z; sleep 2 ; date +%c%t%z%t%Z

20210326 23:59:55

Fri Mar 26 23:59:59 2021        +0200   EET

Sat Mar 27 01:00:01 2021        +0300   EEST

 

Best regards,

 

Evgheni Antropov

Software R&D Engineer

+373 22 404 665

www.addgrup.com