- New src/utils/osLimits.ts: reads RLIMIT_NOFILE (soft/hard, from /proc/self/limits) and vm.max_map_count at open — once per process, Linux-only, measurement-only — and warns loudly when either sits below the pool-scale floors (soft NOFILE < 65536, max_map_count < 262144), with the exact raise commands. On stock defaults the failure otherwise arrives as EMFILE or a failed mmap deep inside an index open, long after the cause stopped being visible. An unreadable limit produces NO warning — no measurement, no claim — so non-Linux platforms stay silent. - Exported for ops doors: checkOsLimits() returns the full OsLimitsReport; floors exported as constants. Wired fire-and-forget in performInit after storage init; the check can never affect open. - Unit tests pin the parser (incl. 'unlimited'), the floor thresholds, the null-never-warns rule, and the off-Linux silent path. |
||
|---|---|---|
| .. | ||
| collation.test.ts | ||
| contentExtractor.test.ts | ||
| entity-id-mapper-stability.test.ts | ||
| entity-id-mapper-u32-ceiling.test.ts | ||
| memoryLimits.test.ts | ||
| metadataIndex-text-indexing.test.ts | ||
| metadataIndex-type-aware.test.ts | ||
| mutex.test.ts | ||
| osLimits.test.ts | ||
| paramValidation.test.ts | ||
| resultRanking.test.ts | ||
| roaring-bitmap-integration.test.ts | ||
| unifiedCache-eviction.test.ts | ||