| I-1 |
2026-11-03 ~15:45 |
openalex_snapshot.py --id-list second pass: workers had ID_SET = None (macOS spawn start method does not inherit module globals) |
68 part files marked error, no data loss |
pool initializer loads the id set per worker; ledger reset; rerun |
| I-2 |
2026-11-03 ~15:50 |
DuckDB "Too many open files" reading 1,898 Parquet files per table |
linkage step failed |
compact_tables.py (one Parquet file per table) + ulimit -n 65536 |
| I-3 |
2026-11-03 ~16:30 |
multiprocessing.Pool + pyarrow in spawned workers hangs on macOS (0 % CPU, no progress) for the classifier |
classification test stalled 10 min |
shard mode: independent processes started by run_classify_shards.sh (two nodes) |
| I-4 |
2026-11-03 ~16:58 |
M3U96b froze (ping 100 % loss, SSH "host is down") while running the second snapshot pass (8 curl+parse workers), the SPECTER2 embedding job (MPS) and earlier DuckDB jobs concurrently |
second pass (≈ 1,400/1,898 files done), the chained corpus v2 / classification, and the M3U96b embedding share interrupted; the three other embedding nodes unaffected |
automatic restart expected (mld harden); all jobs are resumable from ledgers/shards; rule adopted: never run ingestion, embeddings and classification concurrently on one node |