チケット #35958

古すぎるジョブを消す

登録: 2016-01-23 00:02 最終更新: 2023-09-16 00:39

報告者:
担当者:
チケットの種類:
状況:
オープン [担当者決定済み]
コンポーネント:
マイルストーン:
(未割り当て)
優先度:
3
重要度:
3
解決法:
延期
ファイル:
なし
投票
点数: 0
No votes
0.0% (0/0)
0.0% (0/0)

詳細

非同期リストを起動するばかりで wait しない場合、シェル内部のジョブリストにジョブがどんどん溜まってゆき、最終的にメモリを使い果たす可能性がある。ジョブが多過ぎるときに古いジョブを消すべきか。 なお POSIX では CHILD_MAX 個を超えるジョブは覚えなくてよいとしている。

チケットの履歴 (5 件中 3 件表示)

2016-01-23 00:02 更新者: magicant
  • 新しいチケット "古すぎるジョブを消す" が作成されました
2019-01-19 22:35 更新者: magicant
  • 詳細が更新されました
コメント

do_wait の中と get_jobnumber_from_pid の中とでループの回る向きが違うのも気になるがそもそも pid が使い回されるケースに対応していないから使い回されるとろくに動かない。先にそちらの方が問題になる。

2019-01-23 23:12 更新者: magicant
コメント

使い回しの問題は r3973 で直した。

2019-01-27 00:38 更新者: magicant
コメント

そもそも古いジョブを消さずにずっと覚えてるシェルが多数派っぽい?

2023-09-16 00:39 更新者: magicant
  • 解決法なし から 延期 に更新されました
コメント

Yash-rs では pid が使い回されたときに古いジョブを消している。その場合、(OS が使用する pid 空間が有限なので) ジョブリストが無限に膨らむことはない。

添付ファイルリスト

添付ファイルはありません

編集

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする