Pyomo cuOpt adapter: TypeError formatting _version aborts pytest collection (thirdparty pyomo, 12/12 nightly jobs)
メンテナーはふだん 1 日以内に返信
@aliceb-nv がすでに取り組んでいます。
2026年8月19日 から。
評価
この issue はまだ評価されていません。
説明
Summary
Pyomo's cuOpt adapter (pyomo/solvers/plugins/solvers/cuopt_direct.py) raises TypeError while formatting the solver name from CUOPTDirect._version. Because this happens at import/plugin-resolution time, it aborts pytest collection, so the entire thirdparty pyomo step fails rather than a single test.
This is not CI-only: any Pyomo user who has cuOpt installed hits this as soon as Pyomo resolves its solver plugins.
Observed in
Nightly run 32220613929 (main @ 1dbab9cf, 2026-08-19) — 12 of 12 wheel-tests-cuopt jobs fail the thirdparty pyomo step.
Deterministic and long-standing: also 12/12 in 32104333527 (2026-08-18), and wheel-tests-cuopt has failed 12/12 in every nightly checked back to 2026-08-14.
Independent of CUDA version, arch, Python version, and driver — it reproduces across 12.2.2 / 12.9.2 / 13.0.3 / 13.3.0, amd64 and arm64, py3.11–3.14.
Traceback
ERROR collecting pyomo/solvers/tests/checks/test_BARON.py
pyomo/solvers/tests/checks/test_BARON.py:23: in <module>
baron_available = _test_solver_cases('baron', 'bar').available
pyomo/solvers/tests/solvers.py:445: in test_solver_cases
_test_solver_cases['cuopt', 'python'] = initialize(
pyomo/solvers/tests/solvers.py:47: in initialize
elif not opt.available(exception_flag=False):
pyomo/solvers/plugins/solvers/direct_or_persistent_solver.py:314: in available
return bool(_api)
pyomo/common/dependencies.py:347: in __bool__
self.resolve()
...
pyomo/solvers/plugins/solvers/cuopt_direct.py:37: in _get_cuopt_version
CUOPTDirect._name = "cuOpt %s.%s%s" % CUOPTDirect._version
E TypeError: not all arguments converted during string formatting
!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!
====================== 6440 deselected, 1 error in 5.05s =======================
Analysis
"cuOpt %s.%s%s" % CUOPTDirect._version requires _version to be a 3-tuple. _version now has more than three elements, so the % operator raises TypeError: not all arguments converted during string formatting.
The likely trigger is a change in the shape of the version cuOpt reports (e.g. a 4-component version, or an extra suffix/build component being included when the tuple is built). Worth confirming what _version actually contains against a current cuOpt build before settling on the fix.
Suggested fix
The offending line lives in Pyomo, not in this repo, so the fix needs a PR upstream to Pyomo. Make the formatting length-agnostic rather than assuming three components, e.g. joining the parts instead of positional %s placeholders.
In the meantime, this repo's ci/thirdparty-testing/ Pyomo step will keep failing on every nightly, which also masks any genuine Pyomo-integration regression behind a collection abort.
Follow-up needed
- Confirm the actual value/length of
CUOPTDirect._versionwith a current cuOpt build - File and land a PR against Pyomo fixing
cuopt_direct.py - Decide whether to pin/patch Pyomo in
ci/thirdparty-testing/until the upstream fix ships, so the step stops failing every night
Related
Filed alongside the other thirdparty nightly failures from the same run: #1485 (JuMP SOC bridge segfault, reopened) and the cvxpy build failure.
- 主要言語
- Cuda
- スター
- 1.1k
- フォーク
- 255
- 平均マージ
- 1日 11時間
- マージ済み PR(30日)
- 123
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
NVIDIA/cuopt のほかの issue
-
[BUG] Constraint validation reports CSR offset count as the number of rows対応中かも @0z5a が 1 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
ci: pr-test-summary job shows red when the GitHub API returns persistent 5xx errors対応中かも @0z5a が 1 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
[BUG] Dataset downloader reports success and replaces data after a failed download対応中かも @0z5a が 1 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
メンテナーはふだん 1 日以内に返信