openzfs / zfs

OpenZFS on Linux and FreeBSD
https://openzfs.github.io/openzfs-docs
Other
10.71k stars 1.76k forks source link

Linux/i686 is broken, and has been for a while. #13603

Open rincebrain opened 2 years ago

rincebrain commented 2 years ago

System information

Type Version/Name
Distribution Name Debian
Distribution Version 11
Kernel Version 5.10.0-15-686
Architecture i686
OpenZFS Version 2.1.5, master, whatever really

Describe the problem you're observing

I'm just going to make a separate bug here for people to close or not about Linux/i686 being known to blow up in trivial cases.

13597 describes my patch breaking i686 even loading, but this has not been usable for much in a long time.

~First, in a little bit of debugging I could not figure out a way to convince it to load on a Debian -686-pae kernel, I had to reboot into -686 before it would work, even with --with-linux-src and -obj, because the way Debian splits that is different from the common/ARCH split.~ It does help when I remember to install the -686-pae headers, though I'm impressed it mis-picked the -686 headers and didn't even complain a little.

Second, just running zfs-tests.sh -r sanity on 2.1.5 NULL dereferences for me in zfs_destroy_remove_dev.ksh:

[  293.416136] BUG: kernel NULL pointer dereference, address: 00000000
[  293.416852] #PF: supervisor read access in kernel mode
[  293.417429] #PF: error_code(0x0000) - not-present page
[  293.417928] *pde = 00000000
[  293.418407] Oops: 0000 [#1] SMP
[  293.418841] CPU: 2 PID: 1115 Comm: z_vdev_file Tainted: P           OE     5.10.0-15-686 #1 Debian 5.10.120-1
[  293.419325] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-2 04/01/2014
[  293.419749] EIP: spl_kmem_cache_alloc+0x39/0xbc0 [spl]
[  293.420135] Code: e0 fa 53 89 c3 c1 fb 1f 83 ec 50 89 55 c4 65 8b 0d 14 00 00 00 89 4d f0 31 c9 89 45 b8 89 c1 09 d8 89 5d bc 0f 85 a7 01 00 00 <81> 3f 2c 2c 2c 2c 0f 85 3b 01 00 00 8b 47 2c a9 00 00 02 00 0f 85
[  293.420978] EAX: 00000000 EBX: 00000000 ECX: 00000000 EDX: 00000004
[  293.421388] ESI: 00f20e00 EDI: 00000000 EBP: c21fde98 ESP: c21fde3c
[  293.421787] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 EFLAGS: 00010246
[  293.422195] CR0: 80050033 CR2: 00000000 CR3: 1fc89000 CR4: 00350ed0
[  293.422606] Call Trace:
[  293.423016]  ? __raw_callee_save___pv_queued_spin_unlock+0x9/0x10
[  293.423437]  ? abd_verify_scatter+0x62/0x130 [zfs]
[  293.423857]  zio_buf_alloc+0x29/0x60 [zfs]
[  293.424272]  abd_borrow_buf+0x68/0xa0 [zfs]
[  293.424696]  vdev_file_io_strategy+0xb5/0x110 [zfs]
[  293.425119]  taskq_thread+0x2e0/0x640 [spl]
[  293.425531]  ? wake_up_q+0x90/0x90
[  293.425931]  kthread+0xf6/0x110
[  293.426332]  ? taskq_thread_spawn+0x50/0x50 [spl]
[  293.426730]  ? kthread_associate_blkcg+0xb0/0xb0
[  293.427119]  ret_from_fork+0x1c/0x28
[  293.427497] Modules linked in: loop nfsv3 rpcsec_gss_krb5 nfsv4 dns_resolver nfs nfs_ssc fscache nfsd auth_rpcgss nfs_acl lockd grace sunrpc btrfs blake2b_generic xor raid6_pq ufs qnx4 hfsplus hfs minix vfat msdos fat jfs xfs libcrc32c dm_mod md_mod zfs(POE) icp(POE) zzstd(OE) zlua(OE) zcommon(POE) zunicode(POE) znvpair(POE) zavl(POE) spl(OE) kvm_amd kvm ppdev irqbypass aesni_intel bochs_drm libaes drm_vram_helper crypto_simd drm_ttm_helper cryptd ttm drm_kms_helper parport_pc cec sg fb_sys_fops parport syscopyarea sysfillrect sysimgblt joydev evdev qemu_fw_cfg serio_raw button pcspkr drm fuse configfs ip_tables x_tables autofs4 ext4 crc16 mbcache jbd2 crc32c_generic sd_mod t10_pi sr_mod crc_t10dif cdrom virtio_net crct10dif_generic crct10dif_common net_failover failover ata_generic ata_piix crc32_pclmul libata floppy psmouse virtio_pci virtio_ring crc32c_intel virtio i2c_piix4 scsi_mod
[  293.430060] CR2: 0000000000000000
[  293.430506] ---[ end trace a2ba1a0c690c4dd7 ]---
[  293.430960] EIP: spl_kmem_cache_alloc+0x39/0xbc0 [spl]
[  293.431418] Code: e0 fa 53 89 c3 c1 fb 1f 83 ec 50 89 55 c4 65 8b 0d 14 00 00 00 89 4d f0 31 c9 89 45 b8 89 c1 09 d8 89 5d bc 0f 85 a7 01 00 00 <81> 3f 2c 2c 2c 2c 0f 85 3b 01 00 00 8b 47 2c a9 00 00 02 00 0f 85
[  293.432382] EAX: 00000000 EBX: 00000000 ECX: 00000000 EDX: 00000004
[  293.432864] ESI: 00f20e00 EDI: 00000000 EBP: c21fde98 ESP: c21fde3c
[  293.433341] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 EFLAGS: 00010246
[  293.433823] CR0: 80050033 CR2: 00000000 CR3: 1fc89000 CR4: 00350ed0

Third, #12029 was me reporting this against git in May 2021. #12220 is a different bug in June 2021, #12035 is a hang without a panic, #13241 is me reporting recv broken...actually I wonder if that's #13309.

You get the point.

e: #13241 still happens even if you remove the SETPIPE_SZ call, so no, it's not #13309.

stale[bot] commented 1 year ago

This issue has been automatically marked as "stale" because it has not had any activity for a while. It will be closed in 90 days if no further activity occurs. Thank you for your contributions.