Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
rincebrain opened this issue Jun 28, 2022 · 1 comment
Open

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

rincebrain opened this issue Jun 28, 2022 · 1 comment
Labels
Status: Stale No recent activity for issue Type: Architecture Indicates an issue is specific to a single processor architecture Type: Defect Incorrect behavior (e.g. crash, hang)

Comments

@rincebrain
Copy link
Contributor

rincebrain commented Jun 28, 2022

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.

@rincebrain rincebrain added the Type: Defect Incorrect behavior (e.g. crash, hang) label Jun 28, 2022
@behlendorf behlendorf added the Type: Architecture Indicates an issue is specific to a single processor architecture label Jun 28, 2022
@stale
Copy link

stale bot commented Aug 10, 2023

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.

@stale stale bot added the Status: Stale No recent activity for issue label Aug 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Stale No recent activity for issue Type: Architecture Indicates an issue is specific to a single processor architecture Type: Defect Incorrect behavior (e.g. crash, hang)
Projects
None yet
Development

No branches or pull requests

2 participants