Linda W
2005-Jul-30 22:58 UTC
[Samba] Samba bug: 1 out of 387 files off by 1 hour (DST/ST bug)
Summary: There appears to be a bug in the "time range" Samba is using on dates where time is scheduled to "Spring Forward" from Standard to Daylight Savings time. Might want to review the code for "Falling back", as well... Details: This started out with my thinking it was an rsync problem, but it appears to be something to do with how samba is exporting the file time (!? or Windows is reading 1 file). I have 2 files in a windows directory, /tmp/files: fo1.mp3, fo2.mp3. I rsynced them to a directory on a linux box running SuSE 9.1 with samba-3.0.9-2.6. On the linux/samba server, I see times: target> ll --full-time total 6264 -rwxr----- 1 user 2532415 2000-04-02 01:34:50.000000000 -0800 fo1.mp3* -rwxr----- 1 user 3876671 2000-03-12 22:33:20.000000000 -0800 fo2.mp3* (which are the same times as on the Windows source dir:) /tmp/files> ll --full-time total 6272 -rw-r----- 1 user 2532415 2000-04-02 01:34:50.000000000 -0800 fo1.mp3 -rw-r----- 1 user 3876671 2000-03-12 21:33:20.000000000 -0800 fo2.mp3 But, the Win XP's view of the remote files differs on 1 file: /tmp/files> ll --full-time /k/target/ total 7168 -rw-r----- 1 user 2532415 2000-04-02 00:34:50.000000000 -0800 fo1.mp3 ---------------------------------------^ -rw-r----- 1 user 3876671 2000-03-12 21:33:20.000000000 -0800 fo2.mp3 This is 1 file out of 387 that has this problem. The same problem occurs when I use smbmount on the server to mount the exported samba share (but mounted by root): -rwxr-xr-x 1 root 2532415 2000-04-02 00:34:50.000000000 -0800 fo1.mp3 ---------------------------------------^ -rwxr-xr-x 1 root 3876671 2000-03-12 21:33:20.000000000 -0800 fo2.mp3 --------- Note -- same time as seen on the Windows box, but this time it is seen through the linux based "smbmount"ed view. It seems to be a bug related to the the time changing on that date from Standard to Daylight Saving Time. To be more particular, on that date, times in the range >=2:00AM and <3:00AM would not exist. It would appear the code for time checking is using the wrong time range on that date. Linda