Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Potential interference with Distributed.jl on Windows #34

Closed
MilesCranmer opened this issue Aug 21, 2022 · 3 comments
Closed

Potential interference with Distributed.jl on Windows #34

MilesCranmer opened this issue Aug 21, 2022 · 3 comments

Comments

@MilesCranmer
Copy link

Hi all,

I was wondering if you could help me solve the following mystery. As described in detail on discourse, my GitHub action for SymbolicRegression.jl started breaking about 10 days ago on Windows systems. Following some detective work with the help of @rikhuijzer, I did a binary search over all changed dependencies. It seems as though adding a compat entry:

PreallocationTools = "=0.4.0"

solves this issue. i.e., it seems like the change from 0.4.0 to 0.4.2 is, for whatever reason, breaking SymbolicRegression.jl's distributed tests on Windows.

The weird thing is that PreallocationTools is not a direct dependency (dependency of LabelledArrays.jl which is itself a dependency of SymbolicUtils.jl), but it seems like it is causing something to break when worker processes try to activate the environment.

The diff between 0.4.0 and 0.4.2 doesn't raise any red flags, so I also tried to rule out some other things. Since ReverseDiff.jl and FunctionWrappers.jl are newly-introduced requirements by 0.4.2, I tried installing them manually. This doesn't recreate the bug - it only seems to be from PreallocationTools.jl for some reason. All other packages can have their exact same versions, but when PreallocationTools.jl is updated, it seems to cause the bug.

In terms of actual interaction with PreallocationTools, the only thing I can think of is through SymbolicUtils.jl. Is there perhaps any code in SymbolicUtils.jl that would behave differently if the newer version of PreallocationTools.jl is installed?

You can view an example of this error here: https://github.com/MilesCranmer/SymbolicRegression.jl/actions/runs/2896116572 - (I pasted the error message on the discourse thread) - sometimes the jobs hang, and sometimes they crash.

I also realized that the reason the job appears to work on Julia 1.5 on Windows is because PreallocationTools.jl requires Julia 1.6, so it doesn't get installed on the Julia 1.5 runs.

Thanks!
Miles

@MilesCranmer
Copy link
Author

Seems like 0.4.1 is working: https://github.com/MilesCranmer/SymbolicRegression.jl/runs/7941825248?check_suite_focus=true, so the issue comes from the diff between 0.4.1 and 0.4.2.

@ChrisRackauckas
Copy link
Member

There was only one function added in that patch:

v0.4.1...v0.4.2#diff-ef7785cb7a620c0c6baf65435b7733ceae45499abe177846d89809bda837a116R103

Try just deleting that function in a branch and running the tests.

If that doesn't work, then try just importing ReverseDiff to your package. That's the only other change.

v0.4.1...v0.4.2#diff-ef7785cb7a620c0c6baf65435b7733ceae45499abe177846d89809bda837a116R4

@MilesCranmer
Copy link
Author

Alright, looks like it's ReverseDiff which is causing the issue! Thanks for your help!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants