Skip to content

JuMP: MOI.delete on bridged SOC constraint crashes Julia 1.12.x JIT (test_conic_SecondOrderCone_negative_initial_bound) #1485

Description

@ramakrishnap-nv

Summary

After SOCtoNonConvexQuadBridge was added in cuOpt.jl 26.06, calling MOI.delete on a bridged VectorOfVariables in SecondOrderCone constraint crashes Julia 1.12.x's JIT compiler with signal 11 (SIGSEGV in jl_type_infer).

Observed in

Nightly run 28223429126 — all 7 wheel-tests-cuopt jobs fail with thirdparty jump.

Crash call stack

test_conic_SecondOrderCone_negative_initial_bound
  → MOI.Test.runtests (bridge optimizer)
  → bridge_optimizer.jl:765 (delete)
  → Variable/map.jl:652 (call_in_context)
  → jl_type_infer / jl_compile_method_internal  ← SIGSEGV here

The SOCtoNonConvexQuadBridge.delete cleanup calls MOI.delete on the ScalarAffineFunction in GreaterThan constraint it added for the t ≥ 0 row. This triggers a deeply nested dispatch chain through MOI's variable bridge map call_in_context that crashes Julia 1.12.x's type inferencer.

Affected tests (all call MOI.delete on a bridged SOC constraint)

  • test_conic_SecondOrderCone_negative_initial_bound ← newly exposed, not yet excluded
  • test_conic_SecondOrderCone_no_initial_bound — already excluded
  • test_conic_SecondOrderCone_negative_post_bound_2 — already excluded
  • test_conic_SecondOrderCone_negative_post_bound_3 — already excluded

Short-term fix

PR to cuOpt.jl adds test_conic_SecondOrderCone_negative_initial_bound to the same exclude list as the other three tests.

Root cause investigation needed

  • Determine whether this is a Julia 1.12.x JIT regression or a type-stability issue in cuOpt.jl's MOI wrapper that makes the dispatch chain too deep.
  • If it's a Julia regression, report to JuliaLang/julia and consider pinning to Julia 1.11.x in CI.
  • If it's a type-stability issue in cuOpt.jl, add @nospecialize annotations or implement a native delete path for the SOC bridge.

Metadata

Metadata

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