Bug 23732
Summary: | ext4 timestamp range contains 68-year gaps | ||
---|---|---|---|
Product: | File System | Reporter: | Mark Harris (mh8928) |
Component: | ext4 | Assignee: | fs_ext4 (fs_ext4) |
Status: | RESOLVED CODE_FIX | ||
Severity: | normal | CC: | alan, cse.cem, szg00000, thumperward, tytso, xiangyu.zhou |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 3.6-rc1 | Subsystem: | |
Regression: | No | Bisected commit-id: |
Description
Mark Harris
2010-11-25 11:28:44 UTC
Impressively, this bug is still present in v3.14-rc8. $ touch -d 2038-01-31 test-123 $ sudo sh -c "echo 3 > /proc/sys/vm/drop_caches" $ ls -ld test-123 drwxrwxr-x 2 cmeyer cmeyer 4096 Dec 25 1901 test-123 Patch submitted, seems to fix the issue on my system. https://lkml.org/lkml/2014/3/30/40 34 (signed) bits of seconds gets us to Y2242: $ touch -d 2242-01-01 test-123 $ sync ;sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"; sleep 1; sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"; sleep 1; ls -ld test-123 drwxrwxr-x 2 cmeyer cmeyer 4096 Jan 1 2242 test-123 $ touch -d 2243-01-01 test-123 $ sync ;sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"; sleep 1; sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"; sleep 1; ls -ld test-123 drwxrwxr-x 2 cmeyer cmeyer 4096 Aug 3 1698 test-123 (Which we expect, given:) $ echo $((1970+(2038-1970)*4)) 2242 Hm, ignore my patch I guess. Some historical context: http://thread.gmane.org/gmane.comp.file-systems.ext4/40978 > RESOLVED CODE_FIX
Alan, what patch fixed it (sha1)? Thanks!
I don't have the number. I re-ran your test case [root@localhost next]# touch -d 2038-01-31 test-123 [root@localhost next]# ls -l test-123 -rw-r--r--. 1 root root 0 Jan 31 2038 test-123 [root@localhost next]# echo 3 >/proc/sys/vm/drop_caches [root@localhost next]# ls -l test-123 -rw-r--r--. 1 root root 0 Jan 31 2038 test-123 The test case is 'touch -d 2243-01-01 test-123'... 2038 works fine. Hm, 2243 appears to work now too. *Shrug*. I'm not sure why the test cases have been passing but the true fix hasn't been applied yet. This is due to my not having time and the need for us to have better test cases in e2fsprogs (for both the old and new encodings, etc.) As usual, the highly urgent problems with short-term deadlines tend to get higher priority from the important long-term items. Specifically, I want to be able to convert time strings to integers using both the old the new encodings, and then have test cases to make sure that e2fsck and the kernel are doing the right thing and coverting as necessary as we had determined in the migration plan for this bug. This has been fixed in the latest kernel and e2fsprogs |