-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
arm pzstd ThreadPool test segfault #407
Comments
Thanks for the report! As of now pzstd is completely untested on arm systems. I don't currently have an arm machine to test with, but I'll work on getting at least arm emulation set up in the next few days. |
I was unable to reproduce the failure using Are you passing |
All build flags are logged at https://kojipkgs.fedoraproject.org//work/tasks/171/15970171/build.log |
I'll try to reproduce with those flags. I looked in the logs but couldn't find it, which gcc version are you using? |
https://kojipkgs.fedoraproject.org/work/tasks/171/15970171/root.log shows 6.2.1-2.fc26 |
Thanks! I also realized I only checked |
I found an (arch linux) arm7vl machine with gcc-6.1.1, So you can leave this with me to dig into (I'll get back to it soon) |
Ugh, Getting back to this, I've no longer access to that arm machine :( Anyway the segfault was in internal consistency checks in results.push_back(i) in TEST(ThreadPool, Ordering). Specifically an abort in std::vector due to "if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)" Using valgrind to check on x86_64 we get...
I've not confirmed the above warning is valid. |
I think that particular warning is a false positive. In WorkQueue.h I always signal without holding the lock, but valgrind can't analyze that case, so it emits a warning. I've been looking over the code trying to figure out what is going wrong and I'm stumped. I'll run TSAN enabled tests all day today on x86_64 and see if I can trigger any failures. If that fails I'll try to reproduce again tonight. |
arm machine is back (and it's been upgraded to gcc-6.2.1). |
Thanks again for the help debugging this Can you compile with TSAN and see if you get TSAN failures? On the current dev branch you have to compile googletest with |
Unfortunately none of the *san libs are included with the gcc-libs package for arm on archlinux (though are available for x86_64). Anyway I compiled up your dev branch which pulled down the latest googletest, and still have consistent segfault...
|
I tried to reproduce again with |
I never ended up getting a working ARM machine. But I ran all the tests on my iPhone 6s, and everything passed. So the issue is either specific to gcc on ARM, specific to aarch64 / something more specific, or an issue in the build process somewhere. |
We are moving away from One consequence is that the code paths are different : |
I've not actually got an arm system to dig into this, as this is coming from
fedora aarch64 and armv7hl build servers.
Anyway FYI...
Running main() from gtest_main.cc
[==========] Running 3 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 3 tests from ThreadPool
[ RUN ] ThreadPool.Ordering
make[1]: *** [Makefile:38: test] Segmentation fault (core dumped)
The text was updated successfully, but these errors were encountered: