You are not logged in.

#1 2024-04-10 20:44:12

mexanoz
Member
Registered: 2022-08-12
Posts: 4

Pipewire hangs/blocks on disk access in certain Wine games

Sometimes when I play certain games, the sound gets cut off for the entire system. htop shows pipewire's state as 'D', so blocked on disk access, and so does dmesg after some time:

[30720.925458] INFO: task pipewire:745 blocked for more than 122 seconds.
[30720.925480]       Tainted: G    B              6.8.4-zen1-1-zen #1
[30720.925485] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[30720.925488] task:pipewire        state:D stack:0     pid:745   tgid:745   ppid:608    flags:0x00004002
[30720.925501] Call Trace:
[30720.925506]  <TASK>
[30720.925516]  __schedule+0xc93/0x19a0
[30720.925536]  ? prb_read_valid+0x1b/0x30
[30720.925546]  ? irq_work_queue+0x2f/0x60
[30720.925556]  schedule+0x32/0xd0
[30720.925564]  usb_kill_urb.part.0+0x92/0xd0
[30720.925575]  ? __pfx_autoremove_wake_function+0x10/0x10
[30720.925585]  usb_hcd_flush_endpoint+0xbe/0x2b0
[30720.925594]  usb_disable_interface+0x51/0x120
[30720.925604]  usb_set_interface+0x6d/0x550
[30720.925612]  ? _dev_err+0x98/0x100
[30720.925627]  endpoint_set_interface+0x39/0xe0 [snd_usb_audio 67c36f2fd9182dca1735c046d59c85f8967af1b0]
[30720.925724]  snd_usb_endpoint_close+0xfc/0x110 [snd_usb_audio 67c36f2fd9182dca1735c046d59c85f8967af1b0]
[30720.925812]  snd_usb_hw_free+0x9d/0x110 [snd_usb_audio 67c36f2fd9182dca1735c046d59c85f8967af1b0]
[30720.925906]  snd_pcm_common_ioctl+0x1259/0x17a0 [snd_pcm 558f7733533e71e958669b6140b642bb167749db]
[30720.925963]  ? __vm_munmap+0xba/0x150
[30720.925976]  ? syscall_exit_to_user_mode+0x80/0x230
[30720.925985]  ? do_syscall_64+0x96/0x170
[30720.925997]  snd_pcm_ioctl+0x2e/0x50 [snd_pcm 558f7733533e71e958669b6140b642bb167749db]
[30720.926047]  __x64_sys_ioctl+0x94/0xd0
[30720.926058]  do_syscall_64+0x86/0x170
[30720.926066]  ? do_syscall_64+0x96/0x170
[30720.926074]  ? do_syscall_64+0x96/0x170
[30720.926081]  ? do_syscall_64+0x96/0x170
[30720.926088]  ? do_syscall_64+0x96/0x170
[30720.926094]  ? irq_exit_rcu+0x54/0xc0
[30720.926102]  entry_SYSCALL_64_after_hwframe+0x73/0x7b
[30720.926114] RIP: 0033:0x7cce3dbc84ff
[30720.926186] RSP: 002b:00007ffe7f6449b0 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
[30720.926193] RAX: ffffffffffffffda RBX: 0000623675b04870 RCX: 00007cce3dbc84ff
[30720.926198] RDX: 0000000000000003 RSI: 0000000000004112 RDI: 0000000000000049
[30720.926203] RBP: 0000623675b047f0 R08: 0000000623675b04 R09: 0000000000000007
[30720.926207] R10: 0000623675b04b00 R11: 0000000000000246 R12: 0000000000000049
[30720.926211] R13: 00007cce3c7c2010 R14: 00007cce3d2700a0 R15: 0000623675448758
[30720.926219]  </TASK>

journalctl has nothing to say on the matter except these warnings, which happen long before the crash:

апр 10 16:36:18 pcbell-arch systemd[608]: Started PipeWire Multimedia Service.
апр 10 17:01:33 pcbell-arch pipewire[745]: mod.client-node: 0x6236756fa260: unknown peer 0x623675598560 fd:66
апр 10 17:04:51 pcbell-arch pipewire[745]: mod.client-node: 0x623675730190: unknown peer 0x6236756fcdb0 fd:62
апр 10 17:05:04 pcbell-arch pipewire[745]: mod.client-node: 0x6236758c6ab0: unknown peer 0x623675598560 fd:66
апр 10 17:05:30 pcbell-arch pipewire[745]: mod.client-node: 0x623675730190: unknown peer 0x623675830e20 fd:62
апр 10 17:06:27 pcbell-arch pipewire[745]: mod.client-node: 0x6236758c7120: unknown peer 0x6236756fcdb0 fd:62
апр 10 17:06:46 pcbell-arch pipewire[745]: mod.client-node: 0x6236756fc6d0: unknown peer 0x6236756fcdb0 fd:64
апр 10 17:06:46 pcbell-arch pipewire[745]: mod.client-node: 0x6236756fc6d0: unknown peer 0x6236756fcdb0 fd:66
апр 10 17:06:47 pcbell-arch pipewire[745]: mod.client-node: 0x623675730190: unknown peer 0x6236756fcdb0 fd:64
апр 10 17:06:47 pcbell-arch pipewire[745]: mod.client-node: 0x6236756ff940: unknown peer 0x6236756fcdb0 fd:62
апр 10 17:07:05 pcbell-arch pipewire[745]: mod.client-node: 0x6236756fc0e0: unknown peer 0x6236756faa80 fd:66
апр 10 17:08:23 pcbell-arch pipewire[745]: mod.client-node: 0x6236758c78f0: unknown peer 0x623675598560 fd:66
апр 10 17:09:19 pcbell-arch pipewire[745]: mod.client-node: 0x6236758c78f0: unknown peer 0x623675598560 fd:66
апр 10 19:30:04 pcbell-arch pipewire[745]: mod.client-node: 0x623675492340: unknown peer 0x623675830d40 fd:76
апр 10 19:31:33 pcbell-arch pipewire[745]: mod.client-node: 0x6236758c78f0: unknown peer 0x623675598560 fd:62
апр 10 19:31:34 pcbell-arch pipewire[745]: mod.client-node: 0x6236756fc6d0: unknown peer 0x623675598560 fd:64
апр 10 19:36:10 pcbell-arch pipewire[745]: mod.client-node: 0x6236758c2ed0: unknown peer 0x6236758cd9b0 fd:72
апр 10 21:41:21 pcbell-arch pipewire[745]: mod.client-node: 0x6236756fc6d0: unknown peer 0x6236758cef80 fd:62
апр 10 21:49:16 pcbell-arch pipewire[745]: mod.client-node: 0x62367559a850: unknown peer 0x6236758cef80 fd:62
апр 10 22:11:13 pcbell-arch pipewire[745]: mod.client-node: 0x623675a76b70: unknown peer 0x623675b053b0 fd:66
апр 10 22:11:45 pcbell-arch pipewire[745]: mod.client-node: 0x6236756fc6d0: unknown peer 0x623675b053b0 fd:66
апр 10 22:16:31 pcbell-arch pipewire[745]: mod.client-node: 0x623675a76b70: unknown peer 0x6236758cef80 fd:62
апр 10 22:16:52 pcbell-arch pipewire[745]: mod.client-node: 0x623675a76b70: unknown peer 0x623675b053b0 fd:66
апр 10 22:16:53 pcbell-arch pipewire[745]: mod.client-node: 0x623675721e10: unknown peer 0x6236758cef80 fd:62
апр 10 22:21:12 pcbell-arch pipewire[745]: mod.client-node: 0x6236758bb150: unknown peer 0x6236758cef80 fd:62
апр 10 22:39:49 pcbell-arch pipewire[745]: mod.client-node: 0x6236756fc6d0: unknown peer 0x623675b053b0 fd:66
апр 10 22:41:00 pcbell-arch pipewire[745]: mod.client-node: 0x62367574c400: unknown peer 0x623675b053b0 fd:69
апр 11 01:04:33 pcbell-arch pipewire[745]: mod.client-node: 0x623675b04ef0: unknown peer 0x6236758cef80 fd:64
апр 11 01:04:33 pcbell-arch pipewire[745]: mod.client-node: 0x6236758cc0b0: unknown peer 0x623675b053b0 fd:66

I have found no way to restart pipewire after that except restarting the system: neither systemctl restart, kill, kill -9, sudo kill -9, nor relogin into the DE help.
I have noticed this happening with two games: Backpack Battles via Steam and Proton Experimental and King's Bounty The Legend via Bottles and wine-ge-proton-26, but this might not be extensive.
Couldn't find any similar info, any help appreciated.
System info:

  • Kernel: 6.8.4-zen1-1

  • DE: Plasma 6.0.3, Wayland

  • CPU: AMD E2-3800

  • GPU: Integrated Radeon HD 8280, amdgpu driver

  • Both Steam and Bottles installed via flatpak

  • pipewire, pipewire-audio, pipewire-pulse, pipewire-alsa, pipewire-jack 1:1.0.4-4

  • wireplumber 0.5.1-1

UPD: added info about the kernel used

Last edited by mexanoz (2024-04-11 15:05:08)

Offline

#2 2024-04-11 14:32:15

mrkmg
Member
Registered: 2015-11-24
Posts: 2

Re: Pipewire hangs/blocks on disk access in certain Wine games

Getting the same issues with linux kernel 6.8.4

I reverted to kernel 6.8.2 and getting no issue.

In my case, it was trying to do anything which interacted with pipewire at all: Loading a webcam, viewing the sound mixer, etc.

Offline

#3 2024-04-11 15:04:24

mexanoz
Member
Registered: 2022-08-12
Posts: 4

Re: Pipewire hangs/blocks on disk access in certain Wine games

mrkmg wrote:

Getting the same issues with linux kernel 6.8.4

I reverted to kernel 6.8.2 and getting no issue.

In my case, it was trying to do anything which interacted with pipewire at all: Loading a webcam, viewing the sound mixer, etc.

Forgot to mention my kernel, I'm using Zen. It was 6.8.4 last time the issue happened, but I'm pretty sure it happened with older versions as well. I guess I will try the stock kernel and maybe LTS and see if this repeats.

Offline

#4 2024-04-12 17:03:50

mexanoz
Member
Registered: 2022-08-12
Posts: 4

Re: Pipewire hangs/blocks on disk access in certain Wine games

Update: the issue repeated with 6.8.4. 6.8.2 and 6.6.26 LTS refused to boot because my GPU sometimes just does that. I guess I will write it off as one of the oddities of my hardware because god there are a lot of those. The best solution would be to get a new laptop.

Offline

Board footer

Powered by FluxBB