From 8a85488e6f4943c6641634ad481ced04299cce92 Mon Sep 17 00:00:00 2001 From: Ramakrishna Prabhu Date: Fri, 28 Aug 2026 16:08:22 -0500 Subject: [PATCH] Respect verbose=false in print_infeas_or_unbnd_message run_presolver() gates every other console message behind stgs->verbose (print_start_message, print_end_message), but calls print_infeas_or_unbnd_message() unconditionally when the problem is detected infeasible or unbounded. A caller that sets verbose = false to keep PSLP silent still gets "PSLP declares problem as infeasible." printed directly to stdout for exactly that case. Found while embedding PSLP in cuOpt's Java bindings (github.com/NVIDIA/cuopt): the caller already sets verbose = false, but this one unconditional printf writes directly to the process's native stdout stream, which corrupts tooling that intercepts stdout for its own purposes -- in our case, Maven Surefire's forked-JVM communication protocol. Co-Authored-By: Claude Sonnet 5 --- src/core/Presolver.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/core/Presolver.c b/src/core/Presolver.c index c0bdc9e7..426008eb 100644 --- a/src/core/Presolver.c +++ b/src/core/Presolver.c @@ -720,7 +720,10 @@ PresolveStatus run_presolver(Presolver *presolver) if (status != UNCHANGED) { // problem detected to be infeasible or unbounded - print_infeas_or_unbnd_message(status); + if (stgs->verbose) + { + print_infeas_or_unbnd_message(status); + } return status; }