-
Notifications
You must be signed in to change notification settings - Fork 188
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
tests segfault with Julia 0.4 #95
Comments
I don't normally file "segfault"-y issues, assuming they are random noise, but PyCall isn't one to normally get them, so filing this just as a precaution. |
Looks like this is a Julia issue. |
Hmm, #8798 fixed one problem, and sometimes the test pass now, but now it occasionally segfaults, so there may be some other problem. |
Just glad to know it wasn't another spurious PkgEval segfault! |
It looks like a possible memory management issue, as a fair number of the segfaults observed here are tracing back to array_dealloc at numpy/core/src/multiarray/arrayobject.c |
@fundamental, I wonder what has changed. Do you observe the segfaults with Julia 0.3? (Eventually, all of the numpy array stuff should be replaced with something like #70. cc @jakebolewski ) |
I get the feeling that it's a relatively recent commit within julia 0.4, though this is just based upon past usage and not based on running tests. These sort of issues might have happened in the past as most of my use was experimenting around via the ipython notebook and the occasional kernel restart was pretty forgettable. If the test case passes on your machine, then I can test with an older commit, however the magic numbers seem to need to be pretty exact to trigger the bad behavior. (gc threshold, memory alignment, buffer overrun, etc) |
Can you try a git bisect? The test does not crash reliably for me. |
I could, but that depends on how often the llvm version changes. The normal build takes long enough to run, the issue appears to be some sort of memory corruption based issue, so there is no guarantee that if the test passes the bug is not there, and any llvm build (or a few other deps) will take a considerable amount of time to run. Don't get me wrong, I want this fixed, but the non-determinism has me concerned. |
There is also the difficulty that a separate crash was caused by #8551. But the test could be modified to avoid that bug when bisecting older versions. |
If it helps, I'm seeing the occasional printout of: Exception SystemError: 'Objects/methodobject.c:120: bad argument to internal function' in ignored while running code which seems to occasionally have this segfault. |
@stevengj Tests are consistently segfaulting for me. If you want to revise the tests to avoid the first issue, I'm willing to bisect. |
I tried bisecting without changing the tests, and I'm having a pretty rough time (there's been plenty of breakages in the past couple of weeks). I skipped whenever I got a compilation error or I am not done and cannot narrow it down to a single commit, but it appears that the segfaults started with the changes to call overloading. |
@mweastwood, thanks for making the attempt. cc: @JeffBezanson |
This is about the minimal code snippet that reliably crashes for me:
If I delete just about anything it stops crashing; the unpredictable nature of this suggests some weird memory thing (an interaction with garbage collection in Julia and/or Python). |
@stevengj I can confirm that that snippet generates the seg fault for me as well. |
Closing this in favor of JuliaLang/julia#8551, where I seem to have narrowed down the problem to a missing |
Seems to be a PyCall bug, actually. Reopening. |
PackageEvaluator.jl is a script that runs nightly. It attempts to load all Julia packages and run their tests (if available) on both the stable version of Julia (0.3) and the nightly build of the unstable version (0.4). The results of this script are used to generate a package listing enhanced with testing results.
On Julia 0.4
Tests pass.
Tests fail, but package loads.
Tests pass.
means that PackageEvaluator found the tests for your package, executed them, and they all passed.Tests fail, but package loads.
means that PackageEvaluator found the tests for your package, executed them, and they didn't pass. However, trying to load your package withusing
worked.Special message from @IainNZ: This change may be due to JuliaLang/julia#8712.
This issue was filed because your testing status became worse. No additional issues will be filed if your package remains in this state, and no issue will be filed if it improves. If you'd like to opt-out of these status-change messages, reply to this message saying you'd like to and @IainNZ will add an exception. If you'd like to discuss PackageEvaluator.jl please file an issue at the repository. For example, your package may be untestable on the test machine due to a dependency - an exception can be added.
Test log:
The text was updated successfully, but these errors were encountered: