Sway on Archlinux クラッシュについて

 # ちょこちょこクラッシュ
SwayをArchlinux上に展開して使い始めて2ヶ月位経ちますが、結構頻繁にクラッシュします。
感触としてFirefoxでyoutubeやnikoniko動画を見ているときや、Qiitaで記事をガリガリ書いているときが多い気がします。
だんだんと減ってきている（アップデートとバグフィックス？）感じはするのですけれど、、、
一応実施に起こった事例をログベースでまとめます。

ちなみに、解決策は見いだせてません!!
検索にヒット指摘対して来られた方、すみません。。。一緒に苦しみましょう。

# 前提条件
導入しているパッケージ群で、クラッシュに関係してそうな感じがするものをまとめると以下。
ポイントは、virtualboxのためにxwaylandが入っていること、日本語対応のためにmozc関係が入っていること、の２つでしょうか。
一応動画のためのffmpegも記載してます。

```
% pacman -Q
fcitx5 5.0.14-1
fcitx5-configtool 5.0.11-1
fcitx5-mozc 2.26.4632.102.g4d2e3bd-1
fcitx5-qt 5.0.10-1
ffmpeg 2:4.4.1-1
firefox 97.0-1
firefox-i18n-ja 97.0-1
libx11 1.7.3.1-1
libxrandr 1.5.2-3
libxrender 0.9.10-4
pulseaudio 15.0-1
pulseaudio-alsa 1:1.2.6-2
sway 1:1.7-2
virtualbox 6.1.32-2
virtualbox-host-modules-arch 6.1.32-9
wayland 1.20.0-1
wayland-protocols 1.25-1
xorg-xwayland 21.1.4-1
```

今回確認しているログは、sway起動時に以下のようなことをして取得したものです。

```
./sway.log 2>&1
```


# クラッシュ時のログ

現状把握しているケースでは、だいたいこれです。
急にGUIが終了してCUIに戻り、ログを見ると、だいたいコイツラがいます。

```
nouveau: kernel rejected pushbuf: No such device
nouveau: ch2: krec 0 pushes 1 bufs 12 relocs 0
nouveau: ch2: buf 00000000 00000003 00000004 00000004 00000000 0x7fa6aa53f000 0x98000 0x80000
nouveau: ch2: buf 00000001 0000002b 00000002 00000002 00000000 (nil) 0x165c0000 0x1fe0000
nouveau: ch2: buf 00000002 00000008 00000002 00000002 00000002 (nil) 0x2e0000 0xe0000
nouveau: ch2: buf 00000003 0000000b 00000002 00000002 00000002 (nil) 0x8e0000 0x20000
nouveau: ch2: buf 00000004 0000000a 00000002 00000002 00000002 (nil) 0x7e0000 0x100000
nouveau: ch2: buf 00000005 00000006 00000004 00000000 00000004 0x7fa70d582000 0x218000 0x1000
nouveau: ch2: buf 00000006 00000024 00000002 00000000 00000002 (nil) 0x5d60000 0x1fe0000
nouveau: ch2: buf 00000007 00000007 00000002 00000002 00000000 (nil) 0x260000 0x80000
nouveau: ch2: buf 00000008 00000011 00000002 00000002 00000000 (nil) 0x9d40000 0x1fe0000
nouveau: ch2: buf 00000009 00000010 00000004 00000004 00000000 0x7fa6f4264000 0x1800000 0x200000
nouveau: ch2: buf 0000000a 00000069 00000002 00000002 00000000 (nil) 0x145e0000 0x1fe0000
nouveau: ch2: buf 0000000b 00000017 00000002 00000002 00000000 (nil) 0xf1a0000 0x1fe0000
nouveau: ch2: psh 00000000 0000064c24 0000064f18
nouveau:        0x200203fd
nouveau:        0x0f000000
...
sway: ../libdrm-2.4.109/nouveau/pushbuf.c:730: nouveau_pushbuf_data: Assertion `kref' failed.
(EE) failed to read Wayland events: Broken pipe
W2022-02-04 16:37:23.837655 xcbeventreader.cpp:39] XCB connection ":0" got error: 1
I2022-02-04 16:37:23.844188 addonmanager.cpp:297] Unloading addon mozc
I2022-02-04 16:37:23.844266 addonmanager.cpp:297] Unloading addon notifications
I2022-02-04 16:37:23.844297 addonmanager.cpp:297] Unloading addon notificationitem
I2022-02-04 16:37:23.844324 addonmanager.cpp:297] Unloading addon classicui
I2022-02-04 16:37:23.844830 addonmanager.cpp:297] Unloading addon kimpanel
I2022-02-04 16:37:23.844845 addonmanager.cpp:297] Unloading addon xim
I2022-02-04 16:37:23.844858 addonmanager.cpp:297] Unloading addon ibusfrontend
I2022-02-04 16:37:23.848544 addonmanager.cpp:297] Unloading addon fcitx4frontend
I2022-02-04 16:37:23.848576 addonmanager.cpp:297] Unloading addon dbusfrontend
I2022-02-04 16:37:23.848594 addonmanager.cpp:297] Unloading addon dbus
I2022-02-04 16:37:23.848623 addonmanager.cpp:297] Unloading addon unicode
I2022-02-04 16:37:23.848637 addonmanager.cpp:297] Unloading addon waylandim
I2022-02-04 16:37:23.848649 addonmanager.cpp:297] Unloading addon clipboard
I2022-02-04 16:37:23.848667 addonmanager.cpp:297] Unloading addon keyboard
I2022-02-04 16:37:23.848746 addonmanager.cpp:297] Unloading addon imselector
I2022-02-04 16:37:23.848759 addonmanager.cpp:297] Unloading addon quickphrase
I2022-02-04 16:37:23.848863 addonmanager.cpp:297] Unloading addon xcb
I2022-02-04 16:37:23.848872 inputcontextmanager.cpp:318] All display connections are gone, exit now.
I2022-02-04 16:37:23.848935 addonmanager.cpp:297] Unloading addon wayland
Environment variable $XDG_CURRENT_DESKTOP not set, ignoring.
```

ぐぐるといくつかヒットがあるのですが、数年前の記事で「バグ、修正終わっている」という記載があったりするのですが、治ってないんですよね、、

## クラッシュじゃないけれど
以下のようなログが非常にたくさん出てきます。
かなり適当な意訳ですが、xwaylandがwayland用のコンフィグを読んでしまうことが原因、、でしょうか。
害はないそうですが、、うーん。。
virtualboxがネイティブwayland対応になり、xwaylandとおさらばできる日を楽しみにしております。。

https://bbs.archlinux.org/viewtopic.php?id=241074
https://bugzilla.redhat.com/show_bug.cgi?id=1615700

```
% cat sway.log | awk  '/The XKEYBOARD keymap compiler \(xkbcomp\) reports:/,/Error/{print}'
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 708, clipping.
>                   X11 cannot support keycodes above 255.
Errors from xkbcomp are not fatal to the X server
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 708, clipping.
>                   X11 cannot support keycodes above 255.
Errors from xkbcomp are not fatal to the X server
...
```

# クラッシュ以外の不明な症状
実は、クラッシュ以外にも気になっている症状がいくつかあります。

## Chrome日本語入力
色々設定した結果、日本語入力ができるはできるのですが、、以下のようにブラウザの入力ボックスに直接記入するのではないく、一回入力窓が開いて、そこに入力してリターン押したら初めてブラウザ側に張り付くように動きます。
そこまではまぁ我慢できなくもないのですが、タイプしていると、入力したキーが日本語入力窓とブラウザとにバラバラに入ってしまうことがあるます。
例えば「batta」と入力すると、日本語窓は「bata」になっていて、ブラウザ側に何故か「t」だけ生で入力されてしまっていて、気が付かずに変換とリターンすると「t馬田」という謎の単語を入力したことになる、と。。
入力窓とブラウザでキーボード入力を取り合ってしまっているような感じで、mozcとchromeで喧嘩しているのだとは思うのですが、詳細を特定するには至れていません。。。

で、今回そのスナップショットを撮ろうとしたら、、そもそも日本語入力窓自体開かなくなってました。
Chromeのバグフィックスであっちいったりこっち行ったりしているのかもしれません。
これも、、放置するしかないなあ、、

## ターミナル　カーソルの白□が消える
ターミナル上で日本語入力にすると、カーソルが消えます。
そして英語入力に戻しても、カーソルは帰ってきません。
ウィンドウを行き来して帰ってくると、復活します。
これは設定で解決できそうな気もするけれど、もう心が折れました。。。

# まとめ
ということで、残念ながらなんの解決にもならない話でした。