fujidaiti / embed.dart

Code generation for embedding arbitrary file content into Dart code
https://pub.dev/packages/embed
MIT License
9 stars 3 forks source link

Sometimes tests fail with "OS Error: Too many open files" #14

Open fujidaiti opened 1 year ago

fujidaiti commented 1 year ago

Running dart test in the embed/ directory under MacOS sometimes fails with the following error:

$ dart test

00:01 +33 -1: loading test/str/str_embedding_generator_test.dart [E]
  Failed to load "test/str/str_embedding_generator_test.dart": Cannot open file, path = '/Users/daichi/.pub-cache/hosted/pub.dev/analyzer-5.13.0/lib/instrumentation/logger.dart' (OS Error: Too many open files, errno = 24)
  package:build/src/asset/reader.dart 53:13                         AssetReader.digest
  ===== asynchronous gap ===========================
  package:build_resolvers/src/build_asset_uri_resolver.dart 139:20  BuildAssetUriResolver._updateCachedAssetState
  ===== asynchronous gap ===========================
  package:graphs/src/crawl_async.dart 67:19                         _CrawlAsync._crawlFrom
  ===== asynchronous gap ===========================
  package:graphs/src/crawl_async.dart 71:5                          _CrawlAsync._crawlFrom
  ===== asynchronous gap ===========================
  package:graphs/src/crawl_async.dart 71:5                          _CrawlAsync._crawlFrom
  ===== asynchronous gap ===========================
  package:graphs/src/crawl_async.dart 71:5                          _CrawlAsync._crawlFrom
  ===== asynchronous gap ===========================
  package:graphs/src/crawl_async.dart 71:5                          _CrawlAsync._crawlFrom
  ===== asynchronous gap ===========================
  package:graphs/src/crawl_async.dart 71:5                          _CrawlAsync._crawlFrom
  ===== asynchronous gap ===========================
  package:graphs/src/crawl_async.dart 71:5                          _CrawlAsync._crawlFrom
  ===== asynchronous gap ===========================
  package:graphs/src/crawl_async.dart 56:7                          _CrawlAsync.run

To run this test again: /opt/homebrew/Caskroom/flutter/3.0.5/flutter/bin/cache/dart-sdk/bin/dart test test/str/str_embedding_generator_test.dart -p vm --plain-name 'loading test/str/str_embedding_generator_test.dart'
00:01 +33 -2: loading test/binary/binary_embedding_generator_test.dart [E]
  Failed to load "test/binary/binary_embedding_generator_test.dart": Cannot open file, path = '/Users/daichi/.pub-cache/hosted/pub.dev/dart_style-2.3.2/lib/src/chunk.dart' (OS Error: Too many open files, errno = 24)
  package:build_resolvers/src/build_asset_uri_resolver.dart 146:23  BuildAssetUriResolver._updateCachedAssetState
  ===== asynchronous gap ===========================
  package:graphs/src/crawl_async.dart 67:19                         _CrawlAsync._crawlFrom
  ===== asynchronous gap ===========================
  package:graphs/src/crawl_async.dart 71:5                          _CrawlAsync._crawlFrom
  ===== asynchronous gap ===========================
  package:graphs/src/crawl_async.dart 71:5                          _CrawlAsync._crawlFrom
  ===== asynchronous gap ===========================
  package:graphs/src/crawl_async.dart 71:5                          _CrawlAsync._crawlFrom
  ===== asynchronous gap ===========================
  package:graphs/src/crawl_async.dart 71:5                          _CrawlAsync._crawlFrom
  ===== asynchronous gap ===========================
  package:graphs/src/crawl_async.dart 71:5                          _CrawlAsync._crawlFrom
  ===== asynchronous gap ===========================
  package:graphs/src/crawl_async.dart 71:5                          _CrawlAsync._crawlFrom
  ===== asynchronous gap ===========================
  package:graphs/src/crawl_async.dart 56:7                          _CrawlAsync.run

To run this test again: /opt/homebrew/Caskroom/flutter/3.0.5/flutter/bin/cache/dart-sdk/bin/dart test test/binary/binary_embedding_generator_test.dart -p vm --plain-name 'loading test/binary/binary_embedding_generator_test.dart'
00:06 +46 -2: Some tests failed.
fujidaiti commented 1 year ago

A workaround:

$ ulimit -S -n 2048

This command increases the maximum number of files the system can open at one time. 2048 may vary from machine to machine.