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

Assignees

Labels

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

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions