chkwon / PATHSolver.jl

provides a Julia wrapper for the PATH Solver for solving mixed complementarity problems
http://pages.cs.wisc.edu/%7Eferris/path.html
MIT License
50 stars 15 forks source link

Add CI for julia-nightly #114

Closed odow closed 4 months ago

odow commented 4 months ago

x-ref #113

odow commented 4 months ago

cc @lassepe do you have a reproducible example of the failure? I'm reticent to make any changes without one.

odow commented 4 months ago

@lassepe can you try this PR?

lassepe commented 4 months ago

I do not have a compact reproducer for this issue. The setting in which this came up is that I noticed that the toy example from the readme of https://github.com/forrestlaine/QuadraticProgramNetworks.jl fails on 1.11-beta1:

julia> qpn = setup(:robust_avoid_simple);
julia> ret = solve(qpn);

Hence, I started looking into what may cause these problems. @vchuravy pointed out on slack that the use of pointer_to_objref here is illegal and that recent changes to the GC may have caused this to fail now.

Unfortunately, the changes in your PR (and those made in my original PR) did not fix the problems observed in https://github.com/forrestlaine/QuadraticProgramNetworks.jl. I will keep digging to see what is the problem there. Nonetheless, I think this PR is a step in the right direction since the current use of pointer_to_objref may cause hard-to-debug problems at any point in the future. In fact, I have already observed segfaults in the past when using the presolve interface which may very well have been caused by the illegal use of pointer_to_objref.

odow commented 4 months ago

Can you open an issue with the full error logs? What happens?

Unfortunately, the changes in your PR (and those made in my original PR) did not fix the problems

So this PR is, in fact, unrelated?

odow commented 4 months ago

I get

julia> using QuadraticProgramNetworks

julia> qpn = setup(:robust_avoid_simple);

julia> ret = solve(qpn);
Infiltrating project(p::QuadraticProgramNetworks.BasicPoly, keep_dims::Vector{Int64}; tol::Float64)
  at /Users/oscar/.julia/packages/QuadraticProgramNetworks/Iq7xw/src/sets.jl:520ime: 0:00:03
Depth 2: 100%|███████████████████████████████████████████████████████████████| Time: 0:00:03

WARNING: both CairoMakie and Base export "Text"; uses of it in module QuadraticProgramNetworks must be qualified
WARNING: both CairoMakie and LinearAlgebra export "rotate!"; uses of it in module QuadraticProgramNetworks must be qualified
WARNING: both CairoMakie and Polyhedra export "lines"; uses of it in module QuadraticProgramNetworks must be qualified
WARNING: both CaioMakie and Polyhedra export "surface"; uses of it in module QuadraticProgramNetworks must be qualified
WARNING: both CairoMakie and Polyhedra export "volume"; uses of it in module QuadraticProgramNetworks must be qualified
WARNING: both FilePathsBase and Base export "isexecutable"; uses of it in module FilePaths must be qualified
WARNING: both CairoMakie and Polyhedra export "lift"; uses of it in module QuadraticProgramNetworks must be qualified
infil> 

Can you open an issue with a reproducible example and explain what PATHSolver has to do with it?

lassepe commented 4 months ago

First, thank you for merging this PR! :)

So this PR is, in fact, unrelated?

Yes, mostly unrelated. The issue fixed in this PR may be part of the solution but there must be more issues that we haven't found yet.

I get [...]. Can you open an issue with a reproducible example and explain what PATHSolver has to do with it?

I will open an issue with a clearer description once I have a smaller reproducer.