thesayyn / protoc-gen-ts

Compile protocol buffer messages to TypeScript.
MIT License
360 stars 74 forks source link

Get `Error: EAGAIN: resource temporarily unavailable, read` when maybe many files are specified as input #222

Closed YutaUra closed 1 year ago

YutaUra commented 1 year ago

This is the error I reproduced in my OSS.

https://github.com/YutaUra/firestore-emulator/actions/runs/5899224369/job/16001417603?pr=4

My OSS generates type definitions from Firestore proto files, and I don't know if it's because there are so many files, but I get this error.

> @firestore-emulator/proto@0.0.14 generate /Users/yuta/work/github.com/YutaUra/firestore-emulator/packages/proto
> rm -rf generated && mkdir -p generated && grpc_tools_node_protoc --plugin=protoc-gen-ts=./node_modules/.bin/protoc-gen-ts --ts_out=explicit_override,no_namespace:./generated -I ./node_modules/@google-cloud/firestore/build/protos $(find ./node_modules/@google-cloud/firestore/build/protos -name "*.proto")

node:internal/fs/utils:351
    throw err;
    ^

Error: EAGAIN: resource temporarily unavailable, read
    at Object.readSync (node:fs:770:3)
    at tryReadSync (node:fs:442:20)
    at Object.readFileSync (node:fs:496:19)
    at Object.<anonymous> (/Users/yuta/work/github.com/YutaUra/firestore-emulator/node_modules/.pnpm/protoc-gen-ts@0.8.6_google-protobuf@3.21.2_typescript@4.9.5/node_modules/protoc-gen-ts/src/index.js:19:75)
    at Module._compile (node:internal/modules/cjs/loader:1233:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1287:10)
    at Module.load (node:internal/modules/cjs/loader:1091:32)
    at Module._load (node:internal/modules/cjs/loader:938:12)
    at Module.require (node:internal/modules/cjs/loader:1115:19)
    at require (node:internal/modules/helpers:130:18) {
  errno: -35,
  syscall: 'read',
  code: 'EAGAIN'
}

Node.js v20.5.1
--ts_out: protoc-gen-ts: Plugin failed with status code 1.
/Users/yuta/work/github.com/YutaUra/firestore-emulator/node_modules/.pnpm/grpc-tools@1.12.4/node_modules/grpc-tools/bin/protoc.js:41
    throw error;
    ^

Error: Command failed: /Users/yuta/work/github.com/YutaUra/firestore-emulator/node_modules/.pnpm/grpc-tools@1.12.4/node_modules/grpc-tools/bin/protoc --plugin=protoc-gen-grpc=/Users/yuta/work/github.com/YutaUra/firestore-emulator/node_modules/.pnpm/grpc-tools@1.12.4/node_modules/grpc-tools/bin/grpc_node_plugin --plugin=protoc-gen-ts=./node_modules/.bin/protoc-gen-ts --ts_out=explicit_override,no_namespace:./generated -I ./node_modules/@google-cloud/firestore/build/protos ./node_modules/@google-cloud/firestore/build/protos/firestore/bundle.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/aggregation_result.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/write.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/bloom_filter.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/document.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/firestore.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/query.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/common.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/admin/v1/database.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/admin/v1/firestore_admin.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/admin/v1/operation.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/admin/v1/location.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/admin/v1/index.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/admin/v1/field.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1beta1/write.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1beta1/document.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1beta1/firestore.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1beta1/query.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1beta1/common.proto ./node_modules/@google-cloud/firestore/build/protos/google/longrunning/operations.proto ./node_modules/@google-cloud/firestore/build/protos/google/type/latlng.proto ./node_modules/@google-cloud/firestore/build/protos/google/api/client.proto ./node_modules/@google-cloud/firestore/build/protos/google/api/http.proto ./node_modules/@google-cloud/firestore/build/protos/google/api/launch_stage.proto ./node_modules/@google-cloud/firestore/build/protos/google/api/annotations.proto ./node_modules/@google-cloud/firestore/build/protos/google/api/field_behavior.proto ./node_modules/@google-cloud/firestore/build/protos/google/api/resource.proto ./node_modules/@google-cloud/firestore/build/protos/google/rpc/status.proto ./node_modules/@google-cloud/firestore/build/protos/google/protobuf/timestamp.proto ./node_modules/@google-cloud/firestore/build/protos/google/protobuf/field_mask.proto ./node_modules/@google-cloud/firestore/build/protos/google/protobuf/struct.proto ./node_modules/@google-cloud/firestore/build/protos/google/protobuf/wrappers.proto ./node_modules/@google-cloud/firestore/build/protos/google/protobuf/any.proto ./node_modules/@google-cloud/firestore/build/protos/google/protobuf/empty.proto ./node_modules/@google-cloud/firestore/build/protos/google/protobuf/descriptor.proto
node:internal/fs/utils:351
    throw err;
    ^

Error: EAGAIN: resource temporarily unavailable, read
    at Object.readSync (node:fs:770:3)
    at tryReadSync (node:fs:442:20)
    at Object.readFileSync (node:fs:496:19)
    at Object.<anonymous> (/Users/yuta/work/github.com/YutaUra/firestore-emulator/node_modules/.pnpm/protoc-gen-ts@0.8.6_google-protobuf@3.21.2_typescript@4.9.5/node_modules/protoc-gen-ts/src/index.js:19:75)
    at Module._compile (node:internal/modules/cjs/loader:1233:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1287:10)
    at Module.load (node:internal/modules/cjs/loader:1091:32)
    at Module._load (node:internal/modules/cjs/loader:938:12)
    at Module.require (node:internal/modules/cjs/loader:1115:19)
    at require (node:internal/modules/helpers:130:18) {
  errno: -35,
  syscall: 'read',
  code: 'EAGAIN'
}

Node.js v20.5.1
--ts_out: protoc-gen-ts: Plugin failed with status code 1.

    at ChildProcess.exithandler (node:child_process:421:12)
    at ChildProcess.emit (node:events:514:28)
    at maybeClose (node:internal/child_process:1105:16)
    at Socket.<anonymous> (node:internal/child_process:457:11)
    at Socket.emit (node:events:514:28)
    at Pipe.<anonymous> (node:net:337:12) {
  code: 1,
  killed: false,
  signal: null,
  cmd: '/Users/yuta/work/github.com/YutaUra/firestore-emulator/node_modules/.pnpm/grpc-tools@1.12.4/node_modules/grpc-tools/bin/protoc --plugin=protoc-gen-grpc=/Users/yuta/work/github.com/YutaUra/firestore-emulator/node_modules/.pnpm/grpc-tools@1.12.4/node_modules/grpc-tools/bin/grpc_node_plugin --plugin=protoc-gen-ts=./node_modules/.bin/protoc-gen-ts --ts_out=explicit_override,no_namespace:./generated -I ./node_modules/@google-cloud/firestore/build/protos ./node_modules/@google-cloud/firestore/build/protos/firestore/bundle.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/aggregation_result.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/write.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/bloom_filter.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/document.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/firestore.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/query.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1/common.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/admin/v1/database.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/admin/v1/firestore_admin.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/admin/v1/operation.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/admin/v1/location.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/admin/v1/index.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/admin/v1/field.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1beta1/write.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1beta1/document.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1beta1/firestore.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1beta1/query.proto ./node_modules/@google-cloud/firestore/build/protos/google/firestore/v1beta1/common.proto ./node_modules/@google-cloud/firestore/build/protos/google/longrunning/operations.proto ./node_modules/@google-cloud/firestore/build/protos/google/type/latlng.proto ./node_modules/@google-cloud/firestore/build/protos/google/api/client.proto ./node_modules/@google-cloud/firestore/build/protos/google/api/http.proto ./node_modules/@google-cloud/firestore/build/protos/google/api/launch_stage.proto ./node_modules/@google-cloud/firestore/build/protos/google/api/annotations.proto ./node_modules/@google-cloud/firestore/build/protos/google/api/field_behavior.proto ./node_modules/@google-cloud/firestore/build/protos/google/api/resource.proto ./node_modules/@google-cloud/firestore/build/protos/google/rpc/status.proto ./node_modules/@google-cloud/firestore/build/protos/google/protobuf/timestamp.proto ./node_modules/@google-cloud/firestore/build/protos/google/protobuf/field_mask.proto ./node_modules/@google-cloud/firestore/build/protos/google/protobuf/struct.proto ./node_modules/@google-cloud/firestore/build/protos/google/protobuf/wrappers.proto ./node_modules/@google-cloud/firestore/build/protos/google/protobuf/any.proto ./node_modules/@google-cloud/firestore/build/protos/google/protobuf/empty.proto ./node_modules/@google-cloud/firestore/build/protos/google/protobuf/descriptor.proto'
}
andreyddk commented 1 year ago

The same problem. Was faced in node v >= 18. In node v16 alls ok.