lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4A0D97D7.3050304@redhat.com>
Date:	Fri, 15 May 2009 11:27:03 -0500
From:	Eric Sandeen <sandeen@...hat.com>
To:	Theodore Tso <tytso@....edu>
CC:	Kevin Shanahan <kmshanah@...b.org.au>,
	Andreas Dilger <adilger@....COM>, Alex Tomas <bzzz@....COM>,
	linux-ext4@...r.kernel.org
Subject: Re: More ext4 acl/xattr corruption - 4th occurence now

Eric Sandeen wrote:
> Eric Sandeen wrote:
>> Theodore Tso wrote:
>>> On Thu, May 14, 2009 at 08:21:05PM -0500, Eric Sandeen wrote:
>>>> it should lay out a 4g file in random 1m direct IOs to fragment it and
>>>> get a lot of extents, then launch 2 threads, one each doing random reads
>>>> and random writes of that same file.
>>>>
>>>> I can't make this trip it, though ...
>>> If all of the blocks are in the page cache, you won't end up calling
>>> ext4_get_blocks().  Try adding a shell script which runs in parallel
>>> doing a "while /bin/true ; do sleep 1; echo 3 > /proc/sys/vm/drop_cache; done".
>>>
>>> 							- Ted
>> I made sure it was a big enough file, and consumed enough memory on the
>> system before the test, that the entire file couldn't fit in memory.
>>
>> I can try doing the dropping in the bg ... but it should have been going
>> to disk already.
>>
>> -Eric
> 
> in a desperate attempt to show the window, I tried this in
> ext4_ext_put_in_cache():
> 
>         cex->ec_block = -1;
>         cex->ec_start = -1;
>         schedule_timeout_uninterruptible(HZ/2);
>         cex->ec_start = start;
>         cex->ec_block = block;
> 
> and this in ext4_ext_in_cache():
> 
>         if (cex->ec_block == -1 || cex->ec_start == -1)
>                 printk("%s got bad cache\n", __func__);
> 
> and it's not firing.

I take it back, needed a different workload.

Sorry for being pedantic, but if this race is so blindingly obvious and
we're getting so few reports, I wanted to be sure we could hit it.  With
my artificially wide window now I think I can see it, but I'm still not
winding up with any corruption or EIOs....

-Eric
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ