| Summary: | selenium crash | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | Stanislav Graf <sgraf> | ||||||
| Component: | gtk2 | Assignee: | Benjamin Otte <otte> | ||||||
| Status: | CLOSED WONTFIX | QA Contact: | Desktop QE <desktop-qa-list> | ||||||
| Severity: | unspecified | Docs Contact: | |||||||
| Priority: | unspecified | ||||||||
| Version: | 6.2 | CC: | dpal, jhorak, ncoghlan, stransky, tpelka | ||||||
| Target Milestone: | rc | ||||||||
| Target Release: | --- | ||||||||
| Hardware: | x86_64 | ||||||||
| OS: | Unspecified | ||||||||
| Whiteboard: | abrt_hash:acb16edc517e97e1a21d2c52dde4229a10df89ca | ||||||||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2017-12-06 10:17:13 UTC | Type: | --- | ||||||
| Regression: | --- | Mount Type: | --- | ||||||
| Documentation: | --- | CRM: | |||||||
| Verified Versions: | Category: | --- | |||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||
| Attachments: |
|
||||||||
|
Description
Stanislav Graf
2012-02-29 11:36:33 UTC
Created attachment 566533 [details]
File: backtrace
Created attachment 566534 [details]
File: maps
Selenium reports: Message: 'The browser appears to have exited before we could connect. The output was: *** LOG addons.xpi: startup\n *** LOG addons.xpi: checkForChanges\n *** LOG addons.xpi: Opening database\n *** LOG addons.xpi: No changes found\n Failed to dlopen /usr/lib/libX11.so.6\n dlerror says: /usr/lib/libX11.so.6: wrong ELF class: ELFCLASS32\n' I checked this library: # rpm -qf /usr/lib/libX11.so.6 libX11-1.3-2.el6.i686 # rpm --query --file /usr/lib/libX11.so.6 libX11-1.3-2.el6.i686 # rpm --query libX11 libX11-1.3-2.el6.x86_64 libX11-1.3-2.el6.i686 As a workaround I removed 32b version of this library and selenium is working again: # yum remove libX11-1.3-2.el6.i686 Since RHEL 6.3 External Beta has begun, and this bug remains unresolved, it has been rejected as it is not proposed as exception or blocker. Red Hat invites you to ask your support representative to propose this request, if appropriate and relevant, in the next release of Red Hat Enterprise Linux. How can we reproduce this crash? Version-Release number of selected component (if applicable): firefox-10.0.6-1.el6_3.x86_64 How reproducible: 100% Steps to Reproduce: $ su # yum install -y libX11.i686 libX11.x86_64 # exit $ cd $(mktemp -d) $ URL=$(wget --quiet --output-document=- http://pypi.python.org/pypi/selenium | grep 'http://pypi.python.org/packages/source/s/selenium/' | cut --delimiter='"' --fields=2) $ wget --output-document=selenium.tgz "${URL}" $ tar --extract --gzip --file=selenium.tgz $ ln --symbolic selenium-*/py/selenium/ . $ python -c 'import selenium.webdriver.firefox.webdriver as fwb; ff_bin = fwb.FirefoxBinary(); ff_profile = fwb.FirefoxProfile(); driver = fwb.WebDriver(firefox_profile=ff_profile, firefox_binary=ff_bin)' Traceback (most recent call last): File "<string>", line 1, in <module> File "selenium/webdriver/firefox/webdriver.py", line 51, in __init__ self.binary, timeout), File "selenium/webdriver/firefox/extension_connection.py", line 47, in __init__ self.binary.launch_browser(self.profile) File "selenium/webdriver/firefox/firefox_binary.py", line 44, in launch_browser self._wait_until_connectable() File "selenium/webdriver/firefox/firefox_binary.py", line 81, in _wait_until_connectable self._get_firefox_output()) selenium.common.exceptions.WebDriverException: Message: 'The browser appears to have exited before we could connect. The output was: *** LOG addons.xpi: startup\n*** LOG addons.xpi: checkForChanges\n*** LOG addons.xpi: Opening database\n*** LOG addons.xpi: No changes found\nFailed to dlopen /usr/lib/libX11.so.6\ndlerror says: /usr/lib/libX11.so.6: wrong ELF class: ELFCLASS32\n Is that somehow related to RHEL? I testes it on Fedora (Firefox 14) and it crashes randomly. But yes, I can reproduce it somehow...I wonder why it crashes in the network link code. (In reply to comment #8) > Is that somehow related to RHEL? [...] I see the relation through this possible customer scenario: (1) Use RHEL x86_64 workstation. Subscribe RHEL supplementary channel: # pkcon repo-enable rhel-6-workstation-supplementary-rpms (2) Install flash-plugin that is provided by this repo: # yum install flash-plugin [...] Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package flash-plugin.i686 0:11.2.202.236-1.el6 will be installed [...] --> Processing Dependency: libX11.so.6 for package: flash-plugin-11.2.202.236-1.el6.i686 [...] ---> Package libX11.i686 0:1.3-2.el6 will be installed [...] This way I get libX11.i686 on my x86_64 machine. (3) Try to test web pages using Selenium and Firefox crashes. This seems to be bug in gdkevents-x11.c, it doesn't check XNextEvent result and expects xevent to be initialized properly:
2307 _gdk_events_queue (GdkDisplay *display)
2308 {
2309 GList *node;
2310 GdkEvent *event;
2311 XEvent xevent;
2312 Display *xdisplay = GDK_DISPLAY_XDISPLAY (display);
2313
2314 while (!_gdk_event_queue_find_first(display) && XPending (xdisplay))
2315 {
2316 XNextEvent (xdisplay, &xevent);
2317
2318 switch (xevent.type)
2319 {
2320 case KeyPress:
2321 case KeyRelease:
2322 break;
2323 default:
2324 if (XFilterEvent (&xevent, None)) <<< CRASH
2325 continue;
2326 }
XNextEvent implementation is here:
http://code.google.com/searchframe#2tHw6m3DZzo/trunk/cpp/linux-specific/x_ignore_nofocus.c&q=x_ignore%20package:selenium%5C.googlecode%5C.com&l=579
Another bug is in selenium library, get_xlib_handle() fails:
http://code.google.com/searchframe#2tHw6m3DZzo/trunk/cpp/linux-specific/x_ignore_nofocus.c&q=x_ignore%20package:selenium%5C.googlecode%5C.com&l=513
because paths are hardcoded. It's happy if it find /usr/lib/libX11.so.6 which on x86_64 systems points to i686 library (if it is installed).
Changing component to gtk.
To reproduce this issue in gdb use: LD_LIBRARY_PATH=/tmp/tmpiAwJlP/x86:/tmp/tmpiAwJlP/amd64 LD_PRELOAD=x_ignore_nofocus.so firefox -g (firstly follow reproduction steps from comment 7 and then fix LD_LIBRARY_PATH). abrt isn't generating a helpful backtrace for me (possibly because I use KDE), but I suspect I am hitting a similar Python+Selenium+FF 10 ESR issue when attempting to run the Beaker integration tests on RHEL 6 (http://beaker-project.org/dev-guide.html#testing-your-patch). A large fraction of the selenium tests fail with a report that the browser could not be accessed, and abrt complains about firefox crashing. Running Stanislav's suggested reproducer command from comment 7 does indeed produce a Firefox crash for me. And sure enough, removing the 32-bit X11 library (which had been installed due to the Flash plugin) eliminates the crash. This request was not resolved in time for the current release. Red Hat invites you to ask your support representative to propose this request, if still desired, for consideration in the next release of Red Hat Enterprise Linux. Red Hat Enterprise Linux 6 is in the Production 3 Phase. During the Production 3 Phase, Critical impact Security Advisories (RHSAs) and selected Urgent Priority Bug Fix Advisories (RHBAs) may be released as they become available. The official life cycle policy can be reviewed here: http://redhat.com/rhel/lifecycle This issue does not meet the inclusion criteria for the Production 3 Phase and will be marked as CLOSED/WONTFIX. If this remains a critical requirement, please contact Red Hat Customer Support to request a re-evaluation of the issue, citing a clear business justification. Note that a strong business justification will be required for re-evaluation. Red Hat Customer Support can be contacted via the Red Hat Customer Portal at the following URL: https://access.redhat.com/ |