Skip to content

wheel: swath1.mps aborts with std::bad_array_new_length after fast MPS parser (#1429) #1592

Description

@ramakrishnap-nv

Summary

Three wheel tests crash with std::bad_array_new_length on all GPU runners since the fast MPS parser (#1429) merged into main on 2026-07-20:

  • tests/linear_programming/test_incumbent_callbacks.py::test_incumbent_get_callback[/mip/swath1.mps]
  • tests/linear_programming/test_incumbent_callbacks.py::test_incumbent_get_set_callback[/mip/swath1.mps]
  • tests/linear_programming/test_lp_solver.py::test_heuristics_only (also uses swath1.mps)

Symptom

terminate called after throwing an instance of 'std::bad_array_new_length'
  what():  std::bad_array_new_length
Fatal Python error: Aborted

The crash happens inside solver.Solve() before any callback fires.

Key observations

  • Fails on all 6 wheel-test runners (rtxpro6000 and l4, amd64 and arm64)
  • neos5-free-bound.mps variants of the same tests pass
  • conda-python-tests pass on identical GPU configs — the conda binary either parses swath1.mps correctly or solves it at root (0 callbacks → pytest.skip), suggesting a build-configuration difference between conda and wheel binaries
  • Tests were previously disabled (May 2026, Disable flaky swath1 incumbent callback tests #1208) for a different swath1 crash (PDLP CUDA graph capture race), then re-enabled in July 2026

Root cause hypothesis

The fast MPS parser (#1429) mis-parses swath1.mps in the wheel build, producing an invalid array size that causes new[] to throw. The conda build is unaffected, likely due to different compiler flags or linked library versions.

Workaround

swath1.mps tests temporarily skipped in #1591 while this is investigated.

Metadata

Metadata

Assignees

Labels

awaiting responseThis expects a response from maintainer or contributor depending on who requested in last comment.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions