Ticket #35958

古すぎるジョブを消す

오픈 날짜: 2016-01-23 00:02 마지막 업데이트: 2023-09-16 00:39

Reporter:
소유자:
Status:
Open [Owner assigned]
Component:
MileStone:
(None)
Priority:
3
Severity:
3
Resolution:
Postponed
File:
None
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Details

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

Ticket History (3/5 Histories)

2016-01-23 00:02 Updated by: magicant
  • New Ticket "古すぎるジョブを消す" created
2019-01-19 22:35 Updated by: magicant
  • Details Updated
댓글 올리기

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

2019-01-23 23:12 Updated by: magicant
댓글 올리기

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

2019-01-27 00:38 Updated by: magicant
댓글 올리기

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

2023-09-16 00:39 Updated by: magicant
  • Resolution Update from None to Postponed
댓글 올리기

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

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login