hfsplus: GPF when deleting many files/folder
From: Lukas N Wirz
Date: Mon Jan 09 2017 - 18:36:46 EST
Hi,
On kernel 4.9.0 (compiled on debian8) I encounter a general protection
fault when I delete folders with many files in them on an hfsplus file
system.
The flavour of the hfs is unjournalled/case sensitive. The file system
is left in a corrupted state (keys out of order, etc) and cannot be
repaired with fsck.hfsplus. I can reproduce this problem by creating a
new hfsplus filesystem (which passes fsck.hfsplus), copying a few
folders (with files) to the new fs, and deleting the folders. I have
tried this on two different physical hard drives to exclude a hardware
problem.
I don't have this issue under 4.4.0. I have not tried to compile the
current 4.10.rc2 but there appear to be no relevant changes in fs/hfs or
fs/hfsplus.
Attached are a call trace from kern.log, the output of ver_linux, and
the content of /proc/filesystems.
Please tell me if any more information would be useful.
cheers, lukas
Jan 9 14:33:00 debianPro kernel: [ 338.990684] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.990699] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.990712] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.990724] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.990736] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.990756] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.990785] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.990804] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.990825] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.990842] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.990859] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.990876] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.990894] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.990911] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.990928] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.990940] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.990951] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.990962] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.990973] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.990984] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.990995] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991006] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991016] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991026] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991036] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991046] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991056] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991066] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991075] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991085] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991094] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991103] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991112] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991121] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991130] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991139] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991147] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991156] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991164] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991172] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991180] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991188] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991196] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991203] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991211] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991218] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991225] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991232] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991239] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991245] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991252] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991258] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991265] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991271] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991277] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991283] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991288] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991295] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991300] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991305] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991310] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991315] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991320] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991329] hfsplus: trying to free free bnode 0(1)
Jan 9 14:33:00 debianPro kernel: [ 338.991349] general protection fault: 0000 [#1] SMP
Jan 9 14:33:00 debianPro kernel: [ 338.991374] Modules linked in: bnep binfmt_misc dm_crypt af_alg nls_iso8859_1 nls_cp437 vfat fat btusb btrtl btbcm btintel nls_utf8 hfsplus bluetooth input_leds arc4 hid_generic hid_apple ssb bcm5974 mac80211 cfg80211 usbhid hid applesmc input_polldev iTCO_wdt iTCO_vendor_support x86_pkg_temp_thermal coretemp kvm_intel kvm irqbypass ghash_clmulni_intel aesni_intel aes_x86_64 ablk_helper cryptd lrw glue_helper uvcvideo videobuf2_vmalloc videobuf2_memops snd_pcsp videobuf2_v4l2 videobuf2_core videodev i2c_i801 i2c_smbus bcma snd_hda_codec_hdmi snd_hda_codec_cirrus thunderbolt snd_hda_codec_generic i915 fbcon bitblit softcursor tileblit intel_gtt snd_hda_intel apple_gmux snd_hda_codec snd_hda_core drm_kms_helper snd_hwdep snd_pcm_oss drm snd_mixer_oss snd_pcm video i2c_algo_bit fb_sys_fops snd_timer
Jan 9 14:33:00 debianPro kernel: [ 338.991744] syscopyarea snd sysfillrect apple_bl sysimgblt soundcore tpm_tis lpc_ich shpchp tpm_tis_core tpm firewire_sbp2 fuse ppdev lp parport crc32c_intel firewire_ohci firewire_core crc_itu_t sdhci_pci sdhci led_class ahci tg3 ptp libahci pps_core xhci_pci xhci_hcd [last unloaded: b43]
Jan 9 14:33:00 debianPro kernel: [ 338.991885] CPU: 1 PID: 6238 Comm: rm Not tainted 4.9.0 #1
Jan 9 14:33:00 debianPro kernel: [ 338.991908] Hardware name: Apple Inc. MacBookPro9,2/Mac-6F01561E16C75D06, BIOS MBP91.88Z.00D3.B0C.1509111653 09/11/2015
Jan 9 14:33:00 debianPro kernel: [ 338.991950] task: ffff88042df2d780 task.stack: ffffc90008e04000
Jan 9 14:33:00 debianPro kernel: [ 338.991973] RIP: 0010:[<ffffffffa0dad78c>] [<ffffffffa0dad78c>] hfsplus_bnode_write+0x94/0x115 [hfsplus]
Jan 9 14:33:00 debianPro kernel: [ 338.992014] RSP: 0018:ffffc90008e07c00 EFLAGS: 00010286
Jan 9 14:33:00 debianPro kernel: [ 338.992035] RAX: ffff880000000000 RBX: 0000000000000002 RCX: 0000000000000002
Jan 9 14:33:00 debianPro kernel: [ 338.992063] RDX: 0000160000000000 RSI: ffffc90008e07c56 RDI: ffe7091333456000
Jan 9 14:33:00 debianPro kernel: [ 338.992090] RBP: ffffc90008e07c40 R08: ffffc90008e07c24 R09: ffff88044ccd10d0
Jan 9 14:33:00 debianPro kernel: [ 338.992118] R10: ffffea0011333440 R11: 0000000000000000 R12: ffe7091333456000
Jan 9 14:33:00 debianPro kernel: [ 338.992146] R13: ffff88044ccd1120 R14: 0000000000000002 R15: ffe7091333456000
Jan 9 14:33:00 debianPro kernel: [ 338.992175] FS: 00007f018ffbb700(0000) GS:ffff88046f280000(0000) knlGS:0000000000000000
Jan 9 14:33:00 debianPro kernel: [ 338.992206] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Jan 9 14:33:00 debianPro kernel: [ 338.992229] CR2: 0000000000c7c118 CR3: 000000045c8ec000 CR4: 00000000001406e0
Jan 9 14:33:00 debianPro kernel: [ 338.992257] Stack:
Jan 9 14:33:00 debianPro kernel: [ 338.992268] ffff88044ccd10d0 0000160000000000 ffffc90008e07c56 ffff88044ccd10c0
Jan 9 14:33:00 debianPro kernel: [ 338.992304] ffffc90008e07ce0 0000000000001ffc 0000000000000048 0000000000001ff4
Jan 9 14:33:00 debianPro kernel: [ 338.992340] ffffc90008e07c58 ffffffffa0dad82f c6ff00000000000e ffffc90008e07c98
Jan 9 14:33:00 debianPro kernel: [ 338.992374] Call Trace:
Jan 9 14:33:00 debianPro kernel: [ 338.992389] [<ffffffffa0dad82f>] hfsplus_bnode_write_u16+0x22/0x24 [hfsplus]
Jan 9 14:33:00 debianPro kernel: [ 338.992421] [<ffffffffa0daf5f8>] hfsplus_brec_remove+0x10d/0x15b [hfsplus]
Jan 9 14:33:00 debianPro kernel: [ 338.992453] [<ffffffffa0db147d>] __hfsplus_delete_attr+0x99/0xc0 [hfsplus]
Jan 9 14:33:00 debianPro kernel: [ 338.992481] [<ffffffffa0db192b>] hfsplus_delete_all_attrs+0x8b/0xa7 [hfsplus]
Jan 9 14:33:00 debianPro kernel: [ 338.992510] [<ffffffffa0daba3e>] hfsplus_delete_cat+0x297/0x2ba [hfsplus]
Jan 9 14:33:00 debianPro kernel: [ 338.992539] [<ffffffffa0dac1f6>] hfsplus_unlink+0xdc/0x19e [hfsplus]
Jan 9 14:33:00 debianPro kernel: [ 338.992566] [<ffffffff81166acf>] ? __inode_permission+0x82/0xa4
Jan 9 14:33:00 debianPro kernel: [ 338.992590] [<ffffffff81166ddf>] vfs_unlink+0xe1/0x172
Jan 9 14:33:00 debianPro kernel: [ 338.992612] [<ffffffff8116a34a>] do_unlinkat+0x10e/0x218
Jan 9 14:33:00 debianPro kernel: [ 338.992635] [<ffffffff8116ba45>] SyS_unlinkat+0x29/0x2b
Jan 9 14:33:00 debianPro kernel: [ 338.992657] [<ffffffff81582f20>] entry_SYSCALL_64_fastpath+0x13/0x94
Jan 9 14:33:00 debianPro kernel: [ 338.992683] Code: 00 00 00 00 00 88 ff ff 48 8b 75 d0 49 01 d7 4c 8b 4d c0 48 63 cb 49 c1 ff 06 48 89 55 c8 49 c1 e7 0c 49 01 c7 4d 01 fc 4c 89 e7 <f3> a4 49 8b 79 50 e8 a1 6e 36 e0 48 8b 55 c8 49 89 d7 41 29 de
Jan 9 14:33:00 debianPro kernel: [ 338.992850] RIP [<ffffffffa0dad78c>] hfsplus_bnode_write+0x94/0x115 [hfsplus]
Jan 9 14:33:00 debianPro kernel: [ 338.992881] RSP <ffffc90008e07c00>
Jan 9 14:33:00 debianPro kernel: [ 338.999072] ---[ end trace 2584710f1bb4e660 ]---
Jan 9 14:41:30 debianPro kernel: [ 0.000000] Initializing cgroup subsys cpuset
nodev sysfs
nodev rootfs
nodev ramfs
nodev bdev
nodev proc
nodev cpuset
nodev cgroup
nodev cgroup2
nodev tmpfs
nodev devtmpfs
nodev debugfs
nodev tracefs
nodev securityfs
nodev sockfs
nodev pipefs
nodev hugetlbfs
nodev devpts
ext3
ext4
ext2
nodev mqueue
fuseblk
nodev fuse
nodev fusectl
vfat
nodev binfmt_misc
hfsplus
If some fields are empty or look unusual you may have an old version.
Compare to the current minimal requirements in Documentation/Changes.
Linux debianPro 4.9.0 #1 SMP Sat Dec 31 18:40:31 CET 2016 x86_64 GNU/Linux
GNU C 4.9.2
GNU Make 4.0
Binutils 2.25
Util-linux 2.25.2
Mount 2.25.2
Module-init-tools 18
E2fsprogs 1.42.12
Jfsutils 1.1.15
Reiserfsprogs 3.6.24
Reiser4fsprogs 1.0.9
Xfsprogs 3.2.1
Pcmciautils 018
Linux C Library 2.19
Dynamic linker (ldd) 2.19
Linux C++ Library 6.0.20
Procps 3.3.9
Net-tools 1.60
Kbd 1.15.5
Console-tools 1.15.5
Sh-utils 8.23
Udev 215
Wireless-tools 30
Modules Loaded ablk_helper aesni_intel aes_x86_64 af_alg ahci apple_bl apple_gmux applesmc arc4 b43 bcm5974 bcma binfmt_misc bitblit bluetooth bnep btbcm btintel btrtl btusb ccm cfg80211 coretemp crc32c_intel crc_itu_t cryptd dm_crypt drm drm_kms_helper fat fbcon fb_sys_fops firewire_core firewire_ohci firewire_sbp2 fuse ghash_clmulni_intel glue_helper hid hid_apple hid_generic i2c_algo_bit i2c_i801 i2c_smbus i915 input_leds input_polldev intel_gtt irqbypass iTCO_vendor_support iTCO_wdt kvm kvm_intel led_class libahci lp lpc_ich lrw mac80211 nls_cp437 nls_iso8859_1 parport ppdev pps_core ptp sdhci sdhci_pci shpchp snd snd_hda_codec snd_hda_codec_cirrus snd_hda_codec_generic snd_hda_codec_hdmi snd_hda_core snd_hda_intel snd_hwdep snd_mixer_oss snd_pcm snd_pcm_oss snd_pcsp snd_timer softcursor soundcore ssb syscopyarea sysfillrect sysimgblt tg3 thunderbolt tileblit tpm tpm_tis tpm_tis_core usbhid uvcvideo vfat video videobuf2_core videobuf2_memops videobuf2_v4l2 videobuf2_vmalloc videodev x86_pkg_temp_thermal xhci_hcd xhci_pci
Attachment:
signature.asc
Description: OpenPGP digital signature