Pipewire Segmentation Fault on libX11 update

已关闭
#63,218 3 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
linux, shell

调研方向

The report names PipeWire 1.6.9, libX11 1.8.14, wlroots based window managers, and Sway, but gives no source files or failing test. Start by checking the reported package updates and PipeWire logs for the X11 I/O error, then try the reproduction steps in a wlroots session. Done means identifying and fixing the cause of the idle crash; the report does not specify a test or expected resolution beyond PipeWire remaining running.

由索引模型根据 Issue 内容生成。

描述

bug needs-testing
Is this a new report?

Yes

System Info

Void 6.18.58_1 x86_64 AuthenticAMD uptodate rrrrm

Package(s) Affected

pipewire-1.6.9_1 libX11-1.8.14_1 libX11-32bit-1.8.14_1

Does a report exist for this bug with the project's home (upstream) and/or another distro?

None found, except /r/voidlinux

Expected behaviour

Until now, /usr/bin/pipewire was fairly flexible, and allowed itself to be launched directly from a given wlroots-based WM of choice, aside from being stable overall

Actual behaviour

After updating packages libX11-1.8.14_1 libX11-32bit-1.8.14_1, /usr/bin/pipewire started experiencing severe issues on wlroots-based WMs (Tested and confirmed on sway)

It now has a guaranteed crash when launch is attempted from WM config, wheter directly or through a dedicated script. 3-years old setups that had been stable until now, became utterly non-functional inspite of very different hardware configurations

Output is always similar to this (This was also posted on Reddit, but I have found this error to be recurring in my own logs):

[W][12:54:43.206919] mod.x11-bell | [module-x11-bell.:  321 x11_io_error_handler()] X11 I/O error handler called on display :0
[W][12:54:43.207004] mod.x11-bell | [module-x11-bell.:  162 x11_io_error_exit_handler()] X11 display (:0) has encountered a fatal I/O error
[W][12:54:43.207020] mod.x11-bell | [module-x11-bell.:  321 x11_io_error_handler()] X11 I/O error handler called on display :0
[W][12:54:43.207028] mod.x11-bell | [module-x11-bell.:  162 x11_io_error_exit_handler()] X11 display (:0) has encountered a fatal I/O error
Segmentation fault         pipewire

This error is also encountered when attempting to launch /usr/bin/pipewire through daemonize, as well as manually lauching /usr/bin/pipewire alongside /usr/bin/wireplumber (As it was done in the past) without resorting to files into $HOME/.config/pipewire/pipewire.conf.d/ to do that for you. This suggests not to be a configuration error per se.

The error itself is somewhat difficult to replicate outside of using a WM's own launch routines. Manually ensuring to have launched /usr/bin/pipewire alongside /usr/bin/wireplumber will NOT trigger the error immediately. Indeed, it has been observed for /usr/bin/pipewire not to crash at all if kept into a sort of "KEEP-ALIVE" status where it's constantly being fed an audio source. Leaving the system idle (No standby, or sleep, just idle) however, will eventually guarantee a sort of automated /usr/bin/pipewire crash with an output similar to the above.

Attempting to keep /usr/bin/pipewire alongside /usr/bin/wireplumber as both being launched by a terminal emulator which is kept minimized in foreground, will still eventually lead to the aforementioned error with no appreciable change in behaviour, suggesting there not to be a daemonization problem.

Several users on Reddit have reported this very same concern:

https://www.reddit.com/r/voidlinux/comments/1xeyqqi/pipewire_randomly_crashing_mid_session_voidlinux/
https://www.reddit.com/r/voidlinux/comments/1xfmqb4/closing_steam_crashes_pipewire_waybar/
https://www.reddit.com/r/voidlinux/comments/1xfsvep/a_pipewire_crash_temporary_solution/

Steps to reproduce
  1. You need to be using a wlroots-based WM, and also possibly an XWayland session running
  2. Launch /usr/bin/pipewire alongside /usr/bin/wireplumber whether manually, through a dedicated script, or through the WM's own launching routines
  3. Use wpctl status in a terminal emulator to ensure your pipewire session is actually running properly (It may simply skip to step 5 directly, especially if launching from a WM's own launch routine)
  4. Leave the system idle for a while, or otherwise do any task without constantly feeding /usr/bin/pipewire an audio source
  5. Run wctl status again, and find out that, suddenly, wireplumber reports it cannot anymore connect to pipewire
  6. Utilize pgrep to realize that pipewire is not anymore among running processess (pipewire-pulse may still run in a non-functional state, however)
  7. Check your pipewire logs for errors
主要语言
Shell
星标
3.5k
派生
2.8k
平均合并
1 天 21 小时
30 天内合并 PR
302

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

void-linux/void-packages 的其他 Issue

查看 void-linux/void-packages 的全部 Issue

相似的 Issue

更多 Shell/Bash Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。