thoughtbot / capybara-webkit

A Capybara driver for headless WebKit to test JavaScript web apps
https://thoughtbot.com/open-source
MIT License
1.97k stars 428 forks source link

CentOS 7 libQt5WebKit.so.5(WTFCrash+0x17) #1025

Closed ajaya closed 7 years ago

ajaya commented 7 years ago

Folks

We are doing Rails 4, rspec/capybara with this webkit driver for headless CI on Gitlab CI. However, rspec suite crashed with following error

1 0x7fd471fea167 /usr/lib64/libQt5WebKit.so.5(WTFCrash+0x17) [0x7fd471fea167] 2 0x7fd47201f5ef /usr/lib64/libQt5WebKit.so.5(_ZN3WTF11OSAllocator6commitEPvmbb+0x2f) [0x7fd47201f5ef] 3 0x7fd472009f39 /usr/lib64/libQt5WebKit.so.5(_ZN3WTF21PageAllocationAligned8allocateEmmNS_11OSAllocator5UsageEb+0x89) [0x7fd472009f39] 4 0x7fd471d40ee3 /usr/lib64/libQt5WebKit.so.5(+0x1598ee3) [0x7fd471d40ee3] 5 0x7fd471d41239 /usr/lib64/libQt5WebKit.so.5(_ZN3JSC15MarkedAllocator16allocateSlowCaseEm+0x129) [0x7fd471d41239] 6 0x7fd471e5f253 /usr/lib64/libQt5WebKit.so.5(+0x16b7253) [0x7fd471e5f253] 7 0x7fd40a6a79c3 [0x7fd40a6a79c3]

This is just random failures. Here are the packages in CentOS 7 on AWS [centos@ip-172-31-9-206 ~]$ rpm -qa | grep qt5 qt5-qtbase-5.6.1-10.el7.x86_64 qt5-qtsensors-5.6.1-10.el7.x86_64 qt5-rpm-macros-5.6.1-10.el7.noarch qt5-qtbase-common-5.6.1-10.el7.noarch qt5-qtbase-gui-5.6.1-10.el7.x86_64 qt5-qtdeclarative-5.6.1-10.el7.x86_64 qt5-qtlocation-5.6.1-10.el7.x86_64 qt5-qtwebkit-5.6.1-3.b889f46git.el7.x86_64 qt5-qtbase-devel-5.6.1-10.el7.x86_64 qt5-qtwebkit-devel-5.6.1-3.b889f46git.el7.x86_64 qt5-qtxmlpatterns-5.6.1-10.el7.x86_64 qt5-qtwebchannel-5.6.1-10.el7.x86_64 qt5-qtdeclarative-devel-5.6.1-10.el7.x86_64

This test suite runs fine on OSX. We run on linux using xvfb-run. Can somebody point me a way to go and debug the crashes. There are no memory, cpu issues.

ajaya commented 7 years ago

Wanted to give the full trace.

` 1 0x7f5cf473ce37 /lib64/libQt5WebKit.so.5(WTFCrash+0x17) [0x7f5cf473ce37] 2 0x7f5cf475d22e /lib64/libQt5WebKit.so.5(+0x1b3a22e) [0x7f5cf475d22e] 3 0x7f5cf475d2ec /lib64/libQt5WebKit.so.5(_ZN3WTF19MetaAllocatorHandleD2Ev+0x8c) [0x7f5cf475d2ec] 4 0x7f5cf4685482 /lib64/libQt5WebKit.so.5(+0x1a62482) [0x7f5cf4685482] 5 0x7f5cf447ea4d /lib64/libQt5WebKit.so.5(_ZN3JSC4Heap21deleteAllCompiledCodeEv+0x5d) [0x7f5cf447ea4d] 6 0x7f5cf447f163 /lib64/libQt5WebKit.so.5(+0x185c163) [0x7f5cf447f163] 7 0x7f5cf469158a /lib64/libQt5WebKit.so.5(+0x1a6e58a) [0x7f5cf469158a] 8 0x7f5cf448233c /lib64/libQt5WebKit.so.5(+0x185f33c) [0x7f5cf448233c] 9 0x7f5cf24c6cd4 /lib64/libQt5Core.so.5(_ZN7QObject5eventEP6QEvent+0x94) [0x7f5cf24c6cd4] 10 0x7f5cf51f5c1c /lib64/libQt5Widgets.so.5(_ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent+0x9c) [0x7f5cf51f5c1c] 11 0x7f5cf51fa5e2 /lib64/libQt5Widgets.so.5(_ZN12QApplication6notifyEP7QObjectP6QEvent+0x422) [0x7f5cf51fa5e2] 12 0x7f5cf249d806 /lib64/libQt5Core.so.5(_ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent+0x86) [0x7f5cf249d806] 13 0x7f5cf24eaa9e /lib64/libQt5Core.so.5(_ZN14QTimerInfoList14activateTimersEv+0x55e) [0x7f5cf24eaa9e] 14 0x7f5cf24eaf59 /lib64/libQt5Core.so.5(+0x295f59) [0x7f5cf24eaf59] 15 0x7f5cee874d7a /lib64/libglib-2.0.so.0(g_main_context_dispatch+0x15a) [0x7f5cee874d7a] 16 0x7f5cee8750b8 /lib64/libglib-2.0.so.0(+0x4a0b8) [0x7f5cee8750b8] 17 0x7f5cee87516c /lib64/libglib-2.0.so.0(g_main_context_iteration+0x2c) [0x7f5cee87516c] 18 0x7f5cf24eb2cc /lib64/libQt5Core.so.5(_ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE+0x5c) [0x7f5cf24eb2cc] 19 0x7f5cf249c36b /lib64/libQt5Core.so.5(_ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE+0x10b) [0x7f5cf249c36b] 20 0x7f5cf24a3ea6 /lib64/libQt5Core.so.5(_ZN16QCoreApplication4execEv+0x96) [0x7f5cf24a3ea6] 21 0x40b853 /opt/apps/rvm/gems/ruby-2.1.9@eba/gems/capybara-webkit-1.7.1/bin/webkit_server() [0x40b853] 22 0x7f5cf1208b35 /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f5cf1208b35] 23 0x40d227 /opt/apps/rvm/gems/ruby-2.1.9@eba/gems/capybara-webkit-1.7.1/bin/webkit_server() [0x40d227]

`

jferris commented 7 years ago

Can you paste the output of page.driver.versions for the working OS X install and the crashing CentOS install?

Unfortunately, this is likely a bug in QtWebkit, and it's unlikely we'll be able to fix it. It may work using a different version of Qt. I see some reports of this crash, but it looks like it should have been fixed: https://bugs.launchpad.net/ubuntu/+source/qtwebkit-opensource-src/+bug/1275961

ajaya commented 7 years ago

@jferris Thanks for the follow up.

In Mac

Capybara: 2.5.0
capybara-webkit: 1.7.1
Qt: 5.7.1
WebKit: 538.1
QtWebKit: 5.7.1

In CentOS

Capybara: 2.5.0
capybara-webkit: 1.7.1
Qt: 5.6.1
WebKit: 538.1
QtWebKit: 5.6.1

CentOS doesn't have higher version yet. I see Redhat released 5.6.2 but not in centos yet. :(

In Ubunto 16.04, similar issue.

Capybara: 2.5.0
capybara-webkit: 1.7.1
Qt: 5.5.1
WebKit: 538.1
QtWebKit: 5.5.1
ajaya commented 7 years ago

Closing. We moved rspec-retry to retry crash scenarios.