Hello everyone,

I found a bug related to musl daylight saving time setting.

We are set to enter Daylight Saving Time at 10pm on the last day of 2021,

offset Daylight Saving Time by 2 hours, and end Daylight Saving Time on the first day of 2022.

 

However, it did not recover immediately after entering 2022, but it was delayed for more than ten hours before recovery to normal time.

 

We use the musl version 1.2.3

We put the TZ variable settings in /var/time/TZ and use soft links to use it.

 

cat /var/time/TZ
GMT-08:00DST-10:00:00,M12.5.5/18:45:0,M1.1.6/6:0:0

we have a soft link from /system/etc/TZ -> /var/time/TZ, and /etc/TZ -> /var/time/TZ

Here is our env info:

root:/# cat /proc/version

Linux version 5.10.97+ (z30045507@kwemhisprc00189) (aarch64-none-linux-gnu-gcc (

Arm GNU Toolchain 12.2.Rel1 (Build arm-12.24)) 12.2.1 20221205, GNU ld (Arm GNU

Toolchain 12.2.Rel1 (Build arm-12.24)) 2.39.0.20221210) #1 SMP PREEMPT Thu Dec 1

4 10:14:45 CST 2023

 

After looking at the src code I found in the src/time/__tz.c:406, there is a comment:

FIXME: may be broken if DST changes right at year boundary? Also, this could be more efficient.

 

I would like to ask if the current bug is the FIXME written in the comments here. Is there any solution?

 

cid:image003.png@01DA31CC.C3E3DA30