Skip to contentSkip to conversation

New: ext3: ctime changes with no reason in 30 seconds after a file change

Bug 48751 [email protected] 1 participant 7 messages Oct 13, 2012 – Oct 17, 2012

lore
Share & tools
lore
#0 lore raw

https://bugzilla.kernel.org/show_bug.cgi?id=48751

Summary: ext3: ctime changes with no reason in 30 seconds after
a file change
Product: File System
Version: 2.5
Kernel Version: 3.2+, maybe 3.1
Platform: All
OS/Version: Linux
Tree: Mainline
Status: NEW
Severity: normal
Priority: P1
Component: ext3
AssignedTo: [email protected]
ReportedBy: [email protected]
Regression: Yes

Created an attachment (id=83411)
--> (https://bugzilla.kernel.org/attachment.cgi?id=83411)
Details

I've caught an issue slightly similar to the one discussed at
http://git.661346.n2.nabble.com/BUG-Working-tree-getting-out-of-date-quot-spontaneously-quot-td3029928.html
but in my case the issueexists if mounting ext3 partition using native ext3 module, not ext3 mode of ext4 module.

How to reproduce:
I'm sorry I haven't found an easier way to reproduce the issue. I hope the issue is obvious enough for those who works on ext2/3/4 modules to understand and fix it using the strace and stat output provided.
Steps 2 and 3 are just preparations, the actual issue appears in step 4.
1. Have an ext3 partition mounted using the native ext3 module (mounting ext3 partition using ext4 module works fine but it has different issues so I cannot use it).
I tested both slackware-14 (32bit) default kernel and the 3.6.1 from www.kernel.org.
2. Download and unpack glibc-2.16.0.tar.xz from ftp.gnu.org, build it using ./configure --prefix=/usr && make
3. rm -rf /tmp/a && mkdir /tmp/a
4. make install_root=/tmp/a localedata/install-locales During this step /tmp/a/usr/lib/locale/locale-archive is created and modified which we have the problem with.
5. Wait until 1-2 locale names are printed to the console (it takes about 5 seconds) and press Ctrl+C (not pressing Ctrl+C also causes the issue to happed but requires much more time to finish).
6. stat /tmp/a/usr/lib/locale/locale-archive to see the current status
7. wait ~30-40 seconds
8. stat /tmp/a/usr/lib/locale/locale-archive to see the changed "Change time" and "Blocks"

Sometimes the issue is not reproducable. But 3 runs of steps 3-8 always reproduce the issue for me at least once.

Affected versions:
3.2 or above (3.6.1 is still as well)
3.0 is not affected
3.1 cannot test 3.1 right now to tell you whether it's affected or not.
If it really matters, tell me and I'll test it ASAP.

Attachment archive contents:
filesystems : /proc/filesystems
modules : /proc/modules
mounts : /proc/mounts
process-list : ps auxww
stat : stat results
strace : strace -fo strace make install_root=/tmp/a
localedata/install-locales
tune2fs-l : tune2fs -l
version : /proc/version

Signature · 3 lines
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.
#1 lore raw

[Bug 48751] ext3: ctime changes with no reason in 30 seconds after a file change

https://bugzilla.kernel.org/show_bug.cgi?id=48751

Vladimir A. Pavlov <[email protected]> changed:

What |Removed |Added
----------------------------------------------------------------------------

                 CC|                            |[email protected]
           Platform|All                         |i386

--- Comment #1 from Vladimir A. Pavlov <[email protected]> 2012-10-13 18:11:20 ---

Quoted 1 line

3.2 or above (3.6.1 is still as well)

I mean 3.6.1 is affected as well

Signature · 3 lines
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.
#2 lore raw

[Bug 48751] ext3: ctime changes with no reason in 30 seconds after a file change

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=48751

Vladimir A. Pavlov <[email protected]> changed:

What |Removed |Added
----------------------------------------------------------------------------
Platform|i386 |IA-32

Signature · 3 lines
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.
#3 lore raw

[Bug 48751] ext3: ctime changes with no reason in 30 seconds after a file change

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=48751

Alan <[email protected]> changed:

What |Removed |Added
----------------------------------------------------------------------------
CC| |[email protected]

--- Comment #2 from Alan <[email protected]> 2012-10-14 12:28:12 --- Does this go away if you mount without "relatime" ?

Signature · 3 lines
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.
#5 lore raw

[Bug 48751] ext3: ctime changes with no reason in 30 seconds after a file change

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=48751

Jan Kara <[email protected]> changed:

What |Removed |Added
----------------------------------------------------------------------------
CC| |[email protected]

--- Comment #4 from Jan Kara <[email protected]> 2012-10-17 22:52:55 --- Yeah, the reason is that /tmp/a/usr/lib/locale/locale-archive is written to via mmap. ext3 (since it does not support delayed allocation) allocates blocks for the written data only when flusher thread decides to do writeback on the inode (which is 30s after the file is written). This allocation changes i_blocks field of the inode and thus inode's ctime has to be changed as well.

I understand this is counter-intuitive but that's just how the filesystem works...

Signature · 3 lines
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.
#6 lore raw

[Bug 48751] ext3: ctime changes with no reason in 30 seconds after a file change

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=48751

Jan Kara <[email protected]> changed:

What |Removed |Added
----------------------------------------------------------------------------

         AssignedTo|[email protected] |[email protected]
                   |g                           |
Signature · 3 lines
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.