kachick / times_kachick

`#times_kachick channel in chat` as a public repository. Personal Note and TODOs
https://github.com/kachick/times_kachick/issues?q=is%3Aissue+is%3Aclosed
6 stars 0 forks source link

2023-08-28 - Node.js の fs.readdir と fs.readdirSync にバグがあって、recursive と withFileTypes オプションを両方有効にすると戻りのdirent一覧が大幅に欠落する #244

Closed kachick closed 11 months ago

kachick commented 11 months ago

node v20.5.1 で、過去に数億回は書かれてきたであろうサブディレクトリ配下も含めたパスの一覧を取ろうと fs.readdirSync に recursive と withFileTypes オプションをくっつけた。そうすると、なんも問題なく返ってきたように見えて 何故か2エントリ しか返らない 使い方間違えたのかなと recursive や withFileTypes を外すと途端に全エントリが出るのだけれど、これだと求めている用途には不足なのではてはてと思ってたらまさにそういうバグだった。

https://github.com/nodejs/node/issues/48858 https://github.com/nodejs/node/pull/48698 https://github.com/nodejs/node/issues/48640

upstream では2週間前に修正PRがマージされているのだけれど、まだリリースされてないっぽい。 Nodejs ぐらい広く使われてる処理系にしては、仕様がどうとか不足ではなく結構デカ目の不具合にあたったの初めてだったので、まぁすぐ修正版が使えるようにはなると思うけどなんとなくメモっておく

kachick commented 10 months ago

直ってた https://github.com/kachick/wait-other-jobs/commit/6e8d6a79b172a9f751131e948aaf03b737964a6b