← Back to team overview

tiomap-dev team mailing list archive

[Bug 1015292] Re: QT5 based applications fails with a segmentation fault with Pandaboard and the SGX driver

 

The issue on the X11 side:
Program received signal SIGSEGV, Segmentation fault.
RRFirstOutput (pScreen=0x2a1880c0) at randr.c:458
458	    if (pScrPriv->primaryOutput && pScrPriv->primaryOutput->crtc)
(gdb) bt full
#0  RRFirstOutput (pScreen=0x2a1880c0) at randr.c:458
        pScrPriv = 0x0
        output = <optimized out>
        i = <optimized out>
        j = <optimized out>
#1  0x2a0a5834 in ProcRRGetScreenInfo (client=0x2a233f08) at rrscreen.c:615
        stuff = <optimized out>
        rep = {type = 232 '\350', setOfRotations = 66 'B', sequenceNumber = 10777, length = 705951608, root = 3204445656, timestamp = 706298576, configTimestamp = 704846133, nSizes = 0, sizeID = 0, 
          rotation = 63348, rate = 10771, nrateEnts = 16136, pad = 0}
        pWin = 0x2a1b0258
        n = <optimized out>
        rc = 0
        pScreen = 0x2a1880c0
        pScrPriv = 0x0
        extra = <optimized out>
        extraLen = <optimized out>
        output = <optimized out>
#2  0x2a09f456 in ProcRRDispatch (client=<optimized out>) at randr.c:493
        stuff = <optimized out>
#3  0x2a02eb76 in Dispatch () at dispatch.c:442
        clientReady = 0x2a2e81f0
        result = 0
        client = 0x2a233f08
        nready = 0
        icheck = 0x2a1430c0
        start_tick = 100
#4  0x2a0242ce in main (argc=3, argv=0xbefff824, envp=<optimized out>) at main.c:287
        i = <optimized out>
        alwaysCheckForInput = {0, 1}

This happens because the code expects pScrPriv to be available, crashing
X11.

The origin of the problem happens because when X11 starts without any
pvr specific config, both the pvr/omap and fbdev will be loaded and
probed, and as there's no bus specific variable controlling the probe,
it ends up starting both drivers.

As a consequence of having both drivers loaded, X will export 2 screens,
one with (pvr) and one without randr support (fbdev).  The expected
pSrcPriv struct comes from randr, so when Qt tries to create a xcb
window on all displays available, X11 crashes trying to access pSrcPriv.

There are a few issues happening at the same time here, as first xorg
shouldn't be loading 2 screens, and the other is that xorg is not
properly validating the pointer before using it's content.

** Summary changed:

- Snowshoe fails with QT5 with a segmentation fault while starting the application
+ QT5 based applications fails with a segmentation fault with Pandaboard and the SGX driver

-- 
You received this bug notification because you are a member of TI OMAP
Developers, which is subscribed to ubuntu-omap4-extras-graphics.
https://bugs.launchpad.net/bugs/1015292

Title:
  QT5 based applications fails with a segmentation fault with Pandaboard
  and the SGX driver

Status in Ubuntu OMAP4 graphics addons:
  New
Status in “pvr-omap4” package in Ubuntu:
  Confirmed

Bug description:
  While testing Qt 5 support on Ubuntu, and validating the support for
  OpenGL ES2.0 with Pandaboard, I couldn't start Snowshoe (Qt 5 - webkit
  based browser) as it gives a segmentation fault and also breaks the
  X11 server (with the pvr driver).

  After a quick check with Snowball (Mali 400), it worked properly and
  as expected, so this could probably be related with the current SGX
  driver available for Pandaboard.

  How to reproduce the issue:
  1) Enable https://launchpad.net/~canonical-qt5-edgers/+archive/qt5-daily
  2) Install 'snowshoe-mobile' package
  3) Run snowshoe: $ PATH=/opt/qt5/bin:$PATH; snowshoe

  This is with Ubuntu 12.04 with pvr-omap4 1.7.10.0.1.21-0ubuntu1 (from
  archive) and also 1.7.15.0.1.57-1 from TI's PPA.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-omap4-extras-graphics/+bug/1015292/+subscriptions


References