Pipewire Segmentation Fault on libX11 update

クローズ
#63,218 コメント 3 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
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時間
マージ済み PR(30日)
302

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

void-linux/void-packages のほかの issue

void-linux/void-packages の issue をすべて見る

似ている issue

Shell/Bash の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。