nodejs / nodejs/node

File descriptor 0 might not get closed when used in file stream

オープン
#57,905 コメント 4 件 リアクション 0 件 担当者 0 名 GitHub で見る

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

fs
主要言語
JavaScript
スター
122k
フォーク
37.3k
平均マージ
4日 2時間
マージ済み PR(30日)
283

説明

Just from reading the code it seems the file descriptor 0 is not closed for streams.

https://github.com/nodejs/node/blob/e61937b82cbaec758cceeb08876dd51f976b23c2/lib/internal/fs/streams.js#L117-L127

I have not run any tests to confirm that, but the check in code if (!stream.fd) looks rather clear and does not work for fd 0. The _close function actually sets null, so more null-like check should be there:

https://github.com/nodejs/node/blob/e61937b82cbaec758cceeb08876dd51f976b23c2/lib/internal/fs/streams.js#L129-L134

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

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

調査の方向性

まず、lib/internal/fs/streams.jsのリンクされたセクション、特に117-134行を読み、streamのファイルディスクリプタがどのようにチェックされ、クリアされるかを追跡してください。ディスクリプタ0の動作を確認し、報告されたケースのカバレッジを追加してください。完了条件は、他のstreamのクリーンアップを後退させることなく、ディスクリプタ0がクローズされることです。

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

評価

技術スタック
javascript
領域
operating-systems
issue の種類
バグ
難易度
2/5
見積もり時間
1〜3時間
活発さ
静か
明瞭さ
明確に書かれている
初心者へのやさしさ
55/100

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

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