-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Test results inconsistent between machines #27630
Comments
It will help a lot if you can give a minimal working example of this. I see that FinEtools.jl is generally available, what is the minimal script that we would need to run to trigger this behavior? |
Okay, it took me a number of iterations, but I do have a minimal working example now. Mind you, at this point the version is 0.7.0-alpha.153, both on Travis and locally on my machine. Please run
but on Travis the result is
The success and failure is distinguished by calling two different constructors, one that
Hope this helps? |
BTW, the same Travis failure occurs with the Mac (also alpha.153). Except in this case I cannot explore whether or not a local test would pass, as I don't have access to the Mac hardware. |
I should also mention at this point that the problem does not appear on Windows locally on my machine :
Right now appveyor also tests okay with 0.7-alpha.157. |
The test still fails with alpha.216 on Travis (Linux), but passes locally on my machine. The test passes with the same Julia version on Windows (locally and on CI). The test fails with alpha.15 on Travis (MacOS). |
Fails with beta.16 on Travis. |
@staticfloat : The example, is sufficiently minimal? |
Sorry @PetrKryslUCSD, I haven't been able to reproduce this on any of my machines. I am thinking it's possible this is a codegen or LLVM bug. I'll ping @vtjnash to see if he has ideas for debugging information we can try to extract from Travis to better understand why travis fails and locally-running Julia is fine. |
Yeah, I haven't seen it locally fail with any version of Julia. It is a Travis thing, apparently... |
Maybe print the generated LLVM/native code on both machines and compare it? |
This problem still occurs with Julia Version 0.7.0-beta2.0, both Linux and Mac. |
@staticfloat , @nalimilan , @ViralBShah : The output in the files is composed of:
|
Still occurs with beta2-27 on Linux. |
@staticfloat , @nalimilan , @ViralBShah |
@staticfloat , @nalimilan , @ViralBShah The issue is again the assert which fails for one constructor but succeeds for another.
|
When I saw this discrepancy first for Linux, I thought that it made sense because the LLVM code was perhaps different due to the differences in computer architecture. However, now it also happens for Win 10: do you suppose the generated code could also be different locally vs. CI? |
Here is the comparison of generated code for the constructors, both the one that does not fail (the one that takes an additional argument and prints the types), and the original one that does, both generated on my local configuration (a laptop) and CI, Windows 10:
Julia versions: Local: Generated LLVM code for the constructor with printing: Generated LLVM code for the constructor WITHOUT printing: The generated code is DIFFERENT. Does it explain why the comparison of the types fails? I don't know, I don't see enough into the generated code. Does it help you? @staticfloat @ViralBShah @nalimilan |
May be it is meaningless, but I also checked code-lowered version: these appear to be identical both locally and on CI. |
Because I wanted to repair the testing of the package FinEtools to reflect the status of porting the package to 1.0, I have removed the code to exercise the errorring constructors from the tests. If you wish to reproduce the results above (the one that generates the LLVM), please execute
|
seeing that MR is a type: maybe test for equality with |
Switching from
So both operators seem to work for types. Perhaps there is something in the dialects of LLVM that makes |
This could be a bug—I've seen a few |
Hi, I tested the issue on OSX with Julia 1.6.2 and it passed. Is this issue still a problem with other hardware? Sorry I can only test with what I have. Matt. |
This is pretty old now and since it seems to pass now it is hopefully a codegen bug that got fixed. I'll close this issue but if there is more up to date reproducers, just comment and we re-open. |
For my package FinEtools, tests on Linux yield different results for the same Julia version on different machines. In this constructor the first
assert
fires on Travis CI ( Linux 64-bit). However, it does not fire when the@show
s above theassert
line are uncommented(!?). (The@show
s show that the types are identical.)Tested on my local Linux machine. All tests pass just fine.
Tested by Travis CI: The
assert
discussed above fires when the@show
s are disabled.The text was updated successfully, but these errors were encountered: