Old Electron version in macOS client causes GPU system lag and crashes in Tahoe (macOS 26)

オープン
#28,540 コメント 2 件 リアクション 5 件 担当者 0 名 GitHub で見る

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

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

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
electron
領域
desktop

調査の方向性

shared/package.json から始め、そこに記載された Electron のバージョンと、issue で報告されているパッケージ済み macOS クライアントのバージョンを比較します。macOS のダウンロードがどのようにビルドされるかを確認し、生成された Electron バイナリが、一覧にある安全なバージョンおよび影響を受ける _cornerMask 呼び出しに照らして問題ないことを検証します。パッケージ済みクライアントが影響を受けない Electron バージョンを使用していれば完了です。

索引モデルが issue の本文から書いたものです。

説明

Describe the bug
It appears that the Electron version packaged in the macOS desktop client triggers a widely reported issue with https://github.com/electron/electron/issues/48311. This results in system lag and WindowServer crashes that throw users out of their desktop session.

To Reproduce
shared/package.json suggests keybase should be using 38.2.2. Using ripgrep, the version in the current packaged macOS download from keybase.io (v6.5.4-20250917154415+52400b6f28) reports as 28.3.1, and includes the affected call:

f=/Applications/Keybase.app/Contents/Frameworks/Electron\ Framework.framework/Versions/A/Electron\ Framework
app=${f#/Applications/}; app=${app%%/Contents/*}

# Get Electron version
ev=$(rg -a -m1 -o -r '$1' 'Chrome/.*Electron/([0-9]+(\.[0-9]+){1,3})' -- "$f")
[ -z "$ev" ] && ev=$(rg -a -m1 -o -r '$1' 'Electron/([0-9]+(\.[0-9]+){1,3})' -- "$f")

# Ripgrep the binary for affected _cornerMask call (https://github.com/electron/electron/pull/48376)
if rg -a -q -F "_cornerMask" -- "$f"; then
  echo -e "\033[31m❌ $app \033[2m(Electron ${ev:-})\033[0m"
else
  echo -e "\033[32m✅ $app \033[2m(Electron ${ev:-})\033[0m"
fi

Expected behavior
The packaged Electron version should be one of:

  • 36.9.2
  • 37.6.0
  • 38.2.0
  • anything above 39

Additional numbers
The number 345567

主要言語
Go
スター
9.3k
フォーク
1.3k
平均マージ
1日 1時間
マージ済み PR(30日)
97

環境構築

  • Dockerfile または Docker Compose ファイルあり
  • プルリクエストのテンプレートなし
  • コントリビューションガイドなし

はじめの一歩

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

keybase/client のほかの issue

keybase/client の issue をすべて見る

似ている issue

Go の issue をもっと見る

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

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