All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
To: Aioanei Rares <krnl.list@gmail.com>
Cc: linux-ext4@vger.kernel.org,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: Mild filesystem corruption on ext4 (no journal)
Date: Fri, 05 Jun 2009 15:49:40 +0100	[thread overview]
Message-ID: <4A293084.5010400@tuffmail.co.uk> (raw)
In-Reply-To: <4A292E61.3050204@gmail.com>

Aioanei Rares wrote:
> Alan Jenkins wrote:
>> Hi,
>>
>> I run ext4 without a journal on my cheap netbook with a 4 gig SSD.  I 
>> suspect "without a journal" is significant, I don't think I'm doing 
>> anything else strange.
>>
>> When I upgrade libc from 2.7 (debian stable) to 2.9 (debian 
>> unstable), the locale breaks every reboot, and I have to repair it by 
>> running locale-gen.  This happened now when I only upgraded libc, in 
>> order to play with signalfd().  It also happened before, when I 
>> upgraded the entire machine to debian unstable (which I later reverted).
>>
>> The problem is that /usr/lib/locale/locale-archive gets corrupted 
>> when I reboot.  The exact corruption differs with each reboot (i.e. 
>> the md5sum differs).  Last time, the first ~70K was overwritten with 
>> data from xorg.log and my web browsing history.  I have copies of the 
>> original and corrupted state which I can send, the full file is 1.3 
>> megs, but I can limit it to the first 70K, since that's all that was 
>> corrupted.
>>
>> To try and rule out a faulty userspace program, I marked the file as 
>> read-only (chmod a-w) and immutable (chattr +i).  After a reboot, the 
>> file was still read-only and immutable, yet it still became corrupted.
>>
>> Also, I ran md5sum in the shutdown scripts, after mounting the root 
>> filesystem read-only (which is also preceeded by a sync in a 
>> different script).  This showed that the file did not appear 
>> corrupted at this point.  (Though maybe it was ok in page-cache, but 
>> corrupted on-disk).
>>
>> The locale-archive file is read by the libc locale routines using 
>> mmap().  The mapping is read only and is not modified.  It seems 
>> likely that some process has it mapped when the kernel shuts down.
>>
>> I tried reproducing this by writting a minimal daemon which maps a 
>> copy of the locale-archive file, and starting it just before the 
>> filesystem is remounted read-only.  It didn't work though; this copy 
>> of the locale-archive file remained uncorrupted.
>>
>> I forced a fsck on boot, and the filesystem was reported to be 
>> clean.  I am currently running with e2fsprogs v1.41.6 (from debian 
>> unstable), and a custom-built kernel, 2.6.30-rc7.
>>
>> Thanks in advance!
>> Alan
>> -- 
>> To unsubscribe from this list: send the line "unsubscribe 
>> linux-kernel" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at  http://www.tux.org/lkml/
>>
> I suspect, although I might be wrong, that this is not a kernel-related
> problem.

"To try and rule out a faulty userspace program, I marked the file as 
read-only (chmod a-w) and immutable (chattr +i).  After a reboot, the 
file was still read-only and immutable, yet it still became corrupted."

Since the immutable bit is not respected, I tend to think it is a kernel 
problem.  Unless the filesystem isn't getting unmounted/flushed properly 
for some reason... but I thought the modern kernel had that covered.

I agree it is very suspicious this happens only after upgrading libc.  
I'll see if I can find an individual change in libc locale-handling that 
might trigger this.

Thanks
Alan

  reply	other threads:[~2009-06-05 14:49 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-05 10:49 Mild filesystem corruption on ext4 (no journal) Alan Jenkins
2009-06-05 14:40 ` Aioanei Rares
2009-06-05 14:49   ` Alan Jenkins [this message]
2009-06-05 15:20     ` Eric Sandeen
2009-06-05 16:43       ` Alan Jenkins
2009-06-05 16:51         ` Kay Sievers
2009-06-05 16:51           ` Kay Sievers
2009-06-05 21:42           ` Alan Jenkins
2009-06-06  4:17             ` Henrique de Moraes Holschuh
2009-06-05 18:12         ` Eric Sandeen
2009-06-05 21:32           ` Alan Jenkins
2009-06-05 22:02             ` Eric Sandeen
2009-06-05 18:01   ` Theodore Tso
2009-06-05 21:34     ` Alan Jenkins
2009-06-05 21:34       ` Alan Jenkins
2009-06-05 21:42     ` Curt Wohlgemuth
2009-06-05 21:42       ` Curt Wohlgemuth
2009-06-09  4:15       ` Michael Rubin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A293084.5010400@tuffmail.co.uk \
    --to=alan-jenkins@tuffmail.co.uk \
    --cc=krnl.list@gmail.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.