Skip to content

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

@kachick

Description

@kachick

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

nodejs/node#48858
nodejs/node#48698
nodejs/node#48640

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions