-
Notifications
You must be signed in to change notification settings - Fork 162
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
Add Travis tests on arm64, ppc64le, s390x #3744
Conversation
b912bec
to
174744b
Compare
This comment has been minimized.
This comment has been minimized.
While the aarch64 crash is puzzling, in the end I only really care about s390x, as it is big endian, and there it runs fine and gets to the test suite (I guess @dimpase will be happy ;-). But then we see an actual issues, due to the hash function (as mentioned on issue #2362). I see no way to get identical hashes here, though (because the hash function does not know whether our data consists of 16bit or 32bit words). So that leaves the following options:
Other suggestions? |
If you want an opinion, I would chose 2. It is not a big extra cost (adding two more definitions), and unlikely to force further cases in the forseeable future. |
BTW, there is a second test failure seen on both ppc64le and s390x which I right now can't explain, caused by different results given by
I have absolutely no idea right now what might be causing this. At first I thought the hash function for the method selection cache is not BE safe, but then I noticed the issue also pops up on ppc64le. Huh. |
ba00e3a
to
bf7d428
Compare
6c65f84
to
989af9f
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
3840296
to
526f0d0
Compare
ba26563
to
90761df
Compare
So I dug down on the weird difference in the output of On aarch64 and s390x, I got this (for powerpc64le the Travis had another issue, but I am confident it'll be the same:
In contrast, on my Mac on x86, I got this:
I inserted some more code to get a backtrace of the GAP code leading to this, and I found out that the Print("\r# line ", pos[i],
" of ", nrlines,
" (", Int(pos[i] / nrlines * 100), "%)",
"\c"); I still don't have a clue why it is in the method cache the one time but not the other. But OK, some minor difference in the environment might lead to a different path being taken somewhere and then an It also suggests a simple workaround: insert a call |
ee8dab9
to
06b91f0
Compare
Wow, thanks for battling this. Let's see how stable it is long term, but I'm happy to merge it (assuming all the tests pass of course) |
For the backport, see #3966 |
Besides just adding three jobs to the Travis build matrix, we have to deal with some issues with the VMs for the three new platforms: - Always call the right pip matching the `python` binary; and prepare for `python` being Python 3. For details, see <https://travis-ci.community/t/8165> - Work around the fact that the pip cache dir is owned by root. For details, see <https://travis-ci.community/t/7822/6> - Use travis_terminate liberally in .travis.yml to workaround another issue with the three new platforms; as a side benefit, we also get Travis to reliably and early on abort CI builds with failures. For details, see <https://travis-ci.community/t/7659/>. - Adjust a test for OPERS_CACHE_INFO to pass on the three new platforms.
as Travis is gone for GAP (?), what's the status of this? No more s390 tests? |
Note that
s390x
is big endian which would be really nice in light of issue #2362.And testing on arm64 might help with debugging issue #3919.
Resolves #2362.