Skip to content

原文(日本語に翻訳)

メモリが逼迫しているマシンでバックグラウンドセッションが汎用的なエラーを表示していた問題を修正 — 今後は低メモリであることを示し、リソースの解放を提案するようになった

原文(英語)

Fixed background sessions on memory-starved machines showing a generic error — they now indicate low memory and suggest freeing resources

概要

メモリが不足しているマシンでバックグラウンドセッションを起動しようとすると、開始前にプロセスが予期せず終了してしまうことがありました。これまではこのケースで、行のステータスに単なる「終了理由」しか表示されず、原因がメモリ不足であることに気づきにくいという問題がありました。修正後は、プロセスがエラーを出力せずシグナルでもなく静かに終了し、かつその瞬間にホストが低メモリを報告していた場合に限り、possibly low memory — free some up and retry(低メモリの可能性があります — リソースを解放して再試行してください)というヒントがステータスに追加されるようになりました。

基本的な使い方

修正前:
1. メモリが逼迫したマシンで `claude --bg` などでバックグラウンドセッションを起動
2. セッションのプロセスが開始前に終了
3. agent view の行には終了理由だけが表示され、原因がつかみにくい

修正後:
1. 同じ状況でバックグラウンドセッションを起動
2. プロセスが低メモリが原因と疑われる形で終了すると
   「possibly low memory — free some up and retry」という
   ヒント付きのステータスが表示される
3. メモリを解放してから、その行をattach・peek・返信すると
   スーパーバイザーが新しいプロセスを起動して再試行できる

実践例

大量の並行バックグラウンドセッションでメモリが逼迫するケース

1. 複数のバックグラウンドセッションやジョブを同時に起動
2. マシンの空きメモリが少なくなり、新しいセッションのプロセスが
   起動直後に終了してしまう
3. ✅ 行のステータスに低メモリの可能性が明示される
4. 不要なセッションを止める、または他のアプリを閉じてメモリを解放してから再試行する

CI環境やコンテナなどリソース制約下での利用

1. メモリ上限が厳しいコンテナやCI環境で claude --bg を実行
2. リソース不足でプロセスが起動できずに終了
3. ✅ 「free some up and retry」という具体的な対処法が提示される
4. 並行実行数を減らす、あるいはコンテナのメモリ割り当てを増やして再実行する

メモリを解放してセッションを再開する

1. 低メモリのヒントが表示された行を確認
2. 他の不要なバックグラウンドセッションを停止するなどしてメモリを解放
3. 該当の行を attach / peek するか、メッセージを送信する
4. ✅ スーパーバイザーが新しいプロセスを起動し、保存済みの会話から再開する

注意点

  • このメッセージはあくまで「仮説」であり、確定した原因ではありません。プロセスがエラーを出力せずに終了し、かつその時点でホストが低メモリを報告していた場合にのみ表示されます
  • プロセスが何らかのエラーメッセージを出力してから終了した場合は、従来通りそのエラー内容が表示されます
  • ホストのメモリが逼迫している間は、スーパーバイザーが自動的にアイドル状態のセッション(ピン留めされていないもの優先)を停止してリソースを解放する動作も引き続き行われます

関連情報