-
Notifications
You must be signed in to change notification settings - Fork 158
DelayImagesFilterTest segfault #1843
Comments
That is remarkable, I have never seen that test fail before. Test source:
@acachy could you post a backtrace from gdb? @keesspoelstra just a hunch but could this be a Linux occurrence of the issue with adopting orphaned iterators in the html parsing flow? |
[ RUN ] DelayImagesFilterTest.DelayImagesAcrossDifferentFlushWindow Thread 2187 "rewrite-0" received signal SIGSEGV, Segmentation fault. |
@acachy is this happening on the master branch? |
Yes git rev-parse HEAD |
Thanks. So I coincidentally ran the release process earlier today, which includes all tests on ubuntu 14.x and centos 6.x. Those passed fine. So I'm thinking that the OS/arch you used (Debian 8 x64, gcc 8.2) is a prerequisite to reproducing the problem. |
A lot of fresh packages in use. Any assumptions - what libs might be related and why Debug-version works OK? |
@keesspoelstra would be best to assess if this line of thought is worth pursuing more; the only thing I have right now is a hunch, based on vague recollections of a fairly large debugging effort on release builds a couple of years ago for the Microsoft windows port. I believe the problem didn't show in debug versions there either, and some of the stack frames involved do hit code paths that seem relevant, I think. (This may very well be a red herring: I have never seen the problem on any *nix platform. But maybe the glibc/gcc version you used teased out the issue) |
I've rebuilt it with gcc 4.9 However, I've got multiple SIG36 and SIG40 cases like
|
I think grpc uses these signals, they probably are not a concern.
|
So, looks like the problem is related exclusively to gcc 8.2 |
Thanks for helping narrowing that down. I will raise a thread on dev@pagespeed.incubator.apache.org to discuss tomorrow. |
Have you tried running with valgrind? valgrind works well on MPS unit & integration tests, and might be worth a run in case this is a real bug that is just not showing up depending on gmock/gtest behavior. |
Well, I reproduced the problem and ran tests with valgrind; also caught it in GDB. I ended up suspecting static initialization trouble with gtest/gmock 1.7, showing up only in release builds on gcc 6.x (and the originally reported gcc version, 1.8). Skipping the particular problematic test reported above, other tests would fail too (with less complex code/frames in the backtrace).. I think @keesspoelstra more or less proved that the problem is in gtest/gmock by making the problem disappear on a symptomatic OS by upgrading their versions on his dev system. |
Upgrading will be fun: I can make a PR with symlinks to a submodule, but what do we think about symlinks to a folder within a submodule in GIT? |
Also interesting to see, this seems to be the fix for getting 1.7.0 to work with newer GCCs |
Debian 8 x64, gcc 8.2
I try to build PS from source.
./out/Release/pagespeed_automatic_test finishes with:
[ RUN ] DelayImagesFilterTest.DelayImagesAcrossDifferentFlushWindow
Segmentation fault
The text was updated successfully, but these errors were encountered: