クラッシュする不具合の修正
ファイルアプリでフォルダー移動時に、ファイルアプリがクラッシュする不具合が修正されました。ランダムにクラッシュする不具合
ファイルアプリでユーザーがフォルダーを移動する時に、ファイルアプリがクラッシュする現象が発生していました。ファイルアプリがクラッシュする直接的な原因はヒープメモリーの破損でしたが、再現性が一意ではなく、ランダムにファイルアプリがクラッシュしていました。
またクラッシュが発生する時のファイルアプリの操作にも一貫性がありませんでした。
原因を特定するための調査
さて本来の原因はそのメモリー破損の手前にあるため、不具合を修正するためにはその手前にある原因の特定が必要です。しかし再現性なくクラッシュし、再現性を追い求めるも GUI アプリには操作の入口がたくさんあり、加えて GUI アプリを支えるソフトウェアも調査の対象になり得るため、原因の特定には困難さを伴いました。
厄介な不具合
この種の不具合は開発者にとって原因の特定が難しく、厄介な不具合になりがちです。この種の不具合に頭を悩ませた経験のある開発者も多いのではないでしょうか。
実際本不具合でも原因の特定にあたり、バックトレースの収集やクラッシュパターンの調査、現象が発生した PC で物理メモリー自身に問題がないか調査するなど、原因のアタリをつける作業に時間がかけられました。
長い戦いは終わった
しかし Ubuntu と GNOME の開発者が連携し本不具合の調査が続けられ、ついに原因が特定されました。ドラッグ操作の開始処理が、タイムアウトする前に複数回呼び出されることがあり、その呼び出しによって既存のタイムアウトを識別する ID が上書きされてしまい、古い処理を正しくキャンセルできない状態になっていました。
この不整合によって処理タイミングがずれる競合状態が発生し、メモリーの内容が壊れ、それが最終的にアプリのクラッシュに繋がっていました。
そしてこの原因の特定に基づき、本不具合が修正されました。
修正は1行の修正です。
たった1行の修正だと思われるかもしれませんが、この1行の修正に辿り着くために開発者達が集まり、数ヶ月に渡り多大な労力が費やされてきました。
アップデートを
本不具合に対応した libgtk-4-1(4.22.4+ds-0ubuntu0.1)がリリースされています。ソフトウェアの更新からアップデートすると良いでしょう。
アップデートした後にアップデートを反映するため、ログインし直すか PC を再起動すると良いでしょう。

