Thread (8 messages) 8 messages, 3 authors, 2012-10-03

Re: hfsplus BUG: Bad page state in process du pfn:07759 (Re: hfsplus corruption, failed fsck, journalling and zero'ing extent record on delete)

From: Hin-Tak Leung <hidden>
Date: 2012-09-24 20:10:08

Hi Vyacheslav,
--- On Mon, 24/9/12, Vyacheslav Dubeyko <slava@dubeyko.com> wrote:
<snipped>
So, you use journaled HFS+ partition when the issue takes
place. Am I correct?
That's correct - it is also the case-sensitive version.

<snipped>
As I can understand:
1. You had corrupted journaled HFS+ partition.
2. You modify metadata by hand.
3. Then you check this partition by fsck.hfsplus. And
fsck.hfsplus ends checking without any error message.
4. But it takes place BUG message after trying to mount this
partition.

Am I correct in this description?
That's also correct. About item 3, I actually ran it three times -
"fsck.hfsplus -d -D 0x0033 -f -n -l /dev/sdb5"  once
"fsck.hfsplus -d -D 0x0033 -f /dev/sdb5" then twice. 

The first was just to verify that there are fewer critical errors (the "Overlapping extents" type) after modifying the the metadata by hand, without further change; the 2nd to actually fix the fixable errors; and the 3rd time to see that it is clean.
(I piped to "tee" and kept the logs if you feel like looking at them - the last one was the least interesting, of course).

Regards,
Hin-Tak

<snipped>
quoted
--- On Mon, 24/9/12, Vyacheslav Dubeyko <slava@dubeyko.com>
wrote:
quoted
quoted
Hi Hin-Tak,

Could you describe the way of issue reproduction in
more
quoted
quoted
details?

I need to know:
1. What kernel version do you use?
2. Do you have some special configuration of the
system
quoted
quoted
([103022.536649]
SELinux: initialized (dev sdb5, type hfsplus),
uses
quoted
quoted
genfs_contexts)?
3. How did you generate small files? How small is
it (I mean
quoted
quoted
size)?

Sorry, but currently I haven't clear understanding
how to
quoted
quoted
reproduce this
issue from your description.

With the best regards,
Vyacheslav Dubeyko.

On Mon, 2012-09-24 at 08:30 +0100, Hin-Tak Leung
wrote:
quoted
quoted
quoted
Argh, the BUG() seems to be a genuine bug -
running du
quoted
quoted
on the recently "fsck.hfsplus -f" clean disk,
mounting
quoted
quoted
read-only with unmod'ed distro hfsplus driver:
(see, "not
quoted
quoted
Tainted"...)
quoted
=================
[103022.493765] hfs: write access to a
journaled
quoted
quoted
filesystem is not supported, use the force option
at your
quoted
quoted
own risk, mounting read-only.
quoted
[103022.536649] SELinux: initialized (dev sdb5,
type
quoted
quoted
hfsplus), uses genfs_contexts
quoted
[111015.478171] BUG: Bad page state in process
du 
quoted
quoted
pfn:07759
quoted
[111015.478182] page:ffffea00001dd640 count:0
mapcount:0 mapping:       
  (null)
quoted
quoted
index:0x1935
quoted
[111015.478185] page flags:
0x20000000000004(referenced)
quoted
[111015.478189] Modules linked in: usb_storage
tcp_lp
quoted
quoted
nls_utf8 hfsplus fuse ip6table_filter ip6_tables
ebtable_nat
quoted
quoted
ebtables ipt_MASQUERADE 
quoted
iptable_nat nf_nat xt_CHECKSUM iptable_mangle
bridge
quoted
quoted
stp llc xt_LOG xt_physdev nf_conntrack_ipv4
nf_defrag_ipv4
quoted
quoted
xt_state nf_conntrack arc4 
quoted
rtl8187 eeprom_93cx6 mac80211 cfg80211
snd_hda_codec_realtek joydev vhost_net tun macvtap
macvlan
quoted
quoted
kvm_amd kvm edac_core edac_mce_amd k8temp
quoted
  r592 memstick sp5100_tco
snd_hda_intel
quoted
quoted
snd_hda_codec snd_hwdep snd_pcm snd_page_alloc
snd_timer snd
quoted
quoted
soundcore i2c_piix4 r8169 mii shpchp t
quoted
oshiba_acpi sparse_keymap rfkill wmi ecryptfs
sha256_generic encrypted_keys nfsd nfs_acl
auth_rpcgss lockd
quoted
quoted
sunrpc uinput binfmt_misc truste
quoted
d tpm tpm_bios ata_generic pata_acpi
firewire_ohci
quoted
quoted
sdhci_pci sdhci firewire_core crc_itu_t mmc_core
pata_atiixp
quoted
quoted
video radeon i2c_algo_bit d
quoted
rm_kms_helper ttm drm i2c_core [last unloaded:
scsi_wait_scan]
quoted
[111015.478274] Pid: 23364, comm: du Not
tainted
quoted
quoted
3.5.4-1.fc17.x86_64 #1
quoted
[111015.478277] Call Trace:
[111015.478291] 
[<ffffffff81604213>]
quoted
quoted
bad_page+0xe6/0xfb
quoted
[111015.478299] 
[<ffffffff8112dd8e>]
quoted
quoted
get_page_from_freelist+0x77e/0x940
quoted
[111015.478305] 
[<ffffffff8112e0fd>]
quoted
quoted
__alloc_pages_nodemask+0x1ad/0x970
quoted
[111015.478318] 
[<ffffffffa05e5719>] ?
quoted
quoted
hfsplus_bnode_read+0x89/0x100 [hfsplus]
quoted
[111015.478324] 
[<ffffffffa05e5775>] ?
quoted
quoted
hfsplus_bnode_read+0xe5/0x100 [hfsplus]
quoted
[111015.478329] 
[<ffffffff811699e0>]
quoted
quoted
alloc_pages_current+0xb0/0x120
quoted
[111015.478334] 
[<ffffffff811721b8>]
quoted
quoted
new_slab+0x268/0x320
quoted
[111015.478339] 
[<ffffffff8160546e>]
quoted
quoted
__slab_alloc+0x36e/0x4c8
quoted
[111015.478344] 
[<ffffffffa05df11a>] ?
quoted
quoted
hfsplus_alloc_inode+0x1a/0x40 [hfsplus]
quoted
[111015.478349] 
[<ffffffffa05df11a>] ?
quoted
quoted
hfsplus_alloc_inode+0x1a/0x40 [hfsplus]
quoted
[111015.478354] 
[<ffffffff811733f8>]
quoted
quoted
kmem_cache_alloc+0x108/0x160
quoted
[111015.478359] 
[<ffffffffa05e7d40>] ?
quoted
quoted
__hplusfs_brec_find+0xa0/0x180 [hfsplus]
quoted
[111015.478364] 
[<ffffffffa05df11a>]
quoted
quoted
hfsplus_alloc_inode+0x1a/0x40 [hfsplus]
quoted
[111015.478371] 
[<ffffffff811a0606>]
quoted
quoted
alloc_inode+0x26/0xa0
quoted
[111015.478375] 
[<ffffffff811a1c78>]
quoted
quoted
iget_locked+0xb8/0x190
quoted
[111015.478380] 
[<ffffffffa05df715>]
quoted
quoted
hfsplus_iget+0x15/0x230 [hfsplus]
quoted
[111015.478386] 
[<ffffffffa05e7c8f>] ?
quoted
quoted
hfsplus_find_exit+0x2f/0x40 [hfsplus]
quoted
[111015.478391] 
[<ffffffffa05e467f>]
quoted
quoted
hfsplus_lookup+0x20f/0x2d0 [hfsplus]
quoted
[111015.478397] 
[<ffffffff8119ed84>] ?
quoted
quoted
__d_alloc+0x34/0x180
quoted
[111015.478402] 
[<ffffffffa05d701a>] ?
quoted
quoted
char2uni+0x1a/0x50 [nls_utf8]
quoted
[111015.478406] 
[<ffffffff81173321>] ?
quoted
quoted
kmem_cache_alloc+0x31/0x160
quoted
[111015.478410] 
[<ffffffff8119ed84>] ?
quoted
quoted
__d_alloc+0x34/0x180
quoted
[111015.478413] 
[<ffffffff8119ee9c>] ?
quoted
quoted
__d_alloc+0x14c/0x180
quoted
[111015.478419] 
[<ffffffff811928e1>]
quoted
quoted
__lookup_hash+0x61/0x120
quoted
[111015.478423] 
[<ffffffff81194b49>] ?
quoted
quoted
lookup_fast+0x219/0x310
quoted
[111015.478427] 
[<ffffffff81605959>]
quoted
quoted
lookup_slow+0x47/0xab
quoted
[111015.478431] 
[<ffffffff81196ac6>]
quoted
quoted
path_lookupat+0x716/0x750
quoted
[111015.478436] 
[<ffffffff81173321>] ?
quoted
quoted
kmem_cache_alloc+0x31/0x160
quoted
[111015.478440] 
[<ffffffff81196b31>]
quoted
quoted
do_path_lookup+0x31/0xc0
quoted
[111015.478444] 
[<ffffffff81192b33>] ?
quoted
quoted
getname_flags+0x53/0xf0
quoted
[111015.478448] 
[<ffffffff8119787d>]
quoted
quoted
user_path_at_empty+0x5d/0xa0
quoted
[111015.478454] 
[<ffffffff8127973a>] ?
quoted
quoted
inode_has_perm.isra.31.constprop.61+0x2a/0x30
quoted
[111015.478459] 
[<ffffffff8127d835>] ?
quoted
quoted
selinux_inode_getattr+0x45/0x50
quoted
[111015.478464] 
[<ffffffff8118c910>] ?
quoted
quoted
cp_new_stat+0x120/0x140
quoted
[111015.478468] 
[<ffffffff811978d1>]
quoted
quoted
user_path_at+0x11/0x20
quoted
[111015.478472] 
[<ffffffff8118cba5>]
quoted
quoted
vfs_fstatat+0x35/0x70
quoted
[111015.478475] 
[<ffffffff8118ceaa>]
quoted
quoted
sys_newfstatat+0x1a/0x40
quoted
[111015.478482] 
[<ffffffff81614e29>]
quoted
quoted
system_call_fastpath+0x16/0x1b
quoted
[111015.478485] Disabling lock debugging due to
kernel
quoted
quoted
taint
quoted
============================
--- On Mon, 24/9/12, Hin-Tak Leung <htl10@users.sourceforge.net>
wrote:
quoted
<snipped>
quoted
I mentioned briefly some days ago that I
managed
quoted
quoted
to corrupt
quoted
quoted
an HFS+ paritition while experimenting with
the
quoted
quoted
journalling
quoted
quoted
code, to the extent that
fsck_hfs/fsck.hfsplus
quoted
quoted
(Apple's
quoted
quoted
diskdev_cmds tool) refuses to fix. And
that
quoted
quoted
partition, with
quoted
quoted
the unmodified module used ready-only can
get the
quoted
quoted
kernel to
quoted
quoted
BUG() "reliably" by just doing "du" on it
(and I
quoted
quoted
was
quoted
quoted
thinking whether BUG()'ing on corrupted
disk is a
quoted
quoted
bug to
quoted
quoted
file...).

--
To unsubscribe from this list: send the line
"unsubscribe linux-fsdevel" in
quoted
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line
"unsubscribe linux-fsdevel" in
quoted
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help