Update Julia CI job, and add MultiObjectiveAlgorithms as a test#3136
Update Julia CI job, and add MultiObjectiveAlgorithms as a test#3136odow wants to merge 8 commits into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## latest #3136 +/- ##
==========================================
- Coverage 73.16% 73.16% -0.01%
==========================================
Files 430 430
Lines 103967 103964 -3
Branches 16718 16719 +1
==========================================
- Hits 76069 76066 -3
Misses 27622 27622
Partials 276 276 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Remove the option to build shared extras library.
|
@filikat this branch now uses HiGHS#latest to run the Julia tests, as well as the tests from jump-dev/MultiObjectiveAlgorithms.jl#211 (not that I can reproduce the segfault there though).
I wonder if it's something like this:
|
|
This is totally possible. In the C api, I don't think that this should happen. The destructor of the static instance of Tomorrow I will check if any of the unit tests creates this exact situation of two separate instances where one is destroyed before the other. If not, I will write such a test and try to verify if the issue is there. |
Ooooooo. HiGHS/highs/interfaces/highs_c_api.cpp Lines 176 to 178 in 04024d7 Based on this scary warning, it seems highly likely that's the cause: HiGHS/highs/interfaces/highs_c_api.h Lines 2494 to 2495 in 04024d7 I may be able to fix this in JuMP, because we explicitly mark that the GC can run during a call to |
|
Added by #2493 There is already The C API should never call |
Removed calls to resetGlobalScheduler in multiple functions.
Removed parallel test execution for HiGHS package to avoid errors.
|
So I think this was probably the cause of the failures in #2998. I should have taken a deeper look, instead of just working around the cause. |
|
I'm fairly happy that |
I agree. Indeed, the cpp functions that run Highs never call |
|
Am I right in thinking that nothing is lost by removing 'resetGlobalScheduler' from the C API method that destroys HiGHS. All we need is a C API method that calls 'resetGlobalScheduler' so that we, and users, can achieve this from C. Something we'll need for CI tests? |
|
There already is such a function, |
I think so. It was added to avoid some valgrind errors when running the minimal C example, but the same can be achieved by calling
The tests in #3141 are passing, so I don't think there's much else to fix. |

An attempt to reproduce the segfaults in jump-dev/MultiObjectiveAlgorithms.jl#211, where we can additionally make changes to HiGHS.