[mythtv-commits] Ticket #12902: Cannot make QOpenGLContext current in a different thread (occurred while watching live tv)

MythTV noreply at mythtv.org
Mon Oct 17 12:25:54 UTC 2016


#12902: Cannot make QOpenGLContext current in a different thread (occurred while
watching live tv)
-------------------------------------------------+-------------------------
     Reporter:  William L. DeRieux IV            |      Owner:
  <WilliamDeRieux@…>                             |
         Type:  Bug Report - Crash               |     Status:  new
     Priority:  critical                         |  Milestone:  0.28.1
    Component:  Qt5 issues                       |    Version:  0.28.0
     Severity:  high                             |   Keywords:
Ticket locked:  0                                |
-------------------------------------------------+-------------------------
 I got this error when while I was watching live tv.

 '''Cannot make QOpenGLContext current in a different thread'''

 I found some documentation for QOpenGLContext from here:
 http://doc.qt.io/qt-5/qopenglcontext.html#thread-affinity

 '''Some info about my system'''
 {{{
           Distribution: Debian
                Version:  (debian version: stretch/sid)
      Support Lifecycle: N\A
               Codename:
               Fullname: Debian GNU/Linux stretch/sid

            Kernel Name: Linux
         Kernel Release: 3.16.0-4-amd64
         Kernel Version: #1 SMP Debian 3.16.36-1+deb8u1 (2016-09-03)
   Machine Architecture: x86_64
       Operating System: GNU/Linux
               Hostname: desktop1
 }}}

 '''Built using gcc-6'''
 {{{
 $ gcc -v
 Using built-in specs.
 COLLECT_GCC=gcc
 COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper
 Target: x86_64-linux-gnu
 Configured with: ../src/configure -v --with-pkgversion='Debian 6.2.0-6'
 --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-
 languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr
 --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared
 --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext
 --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/
 --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes
 --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-
 vtable-verify --enable-libmpx --enable-plugin --with-system-zlib
 --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-
 java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home
 --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-
 dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-
 directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-
 objc-gc --enable-multiarch --with-arch-32=i686 --with-abi=m64 --with-
 multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-
 checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu
 --target=x86_64-linux-gnu
 Thread model: posix
 gcc version 6.2.0 20161010 (Debian 6.2.0-6)
 }}}


 '''Using version 0.28'''
 {{{
 $ mythfrontend --version

 Please attach all output as a file in bug reports.
 MythTV Version : v0.28
 MythTV Branch :
 Network Protocol : 88
 Library API : 0.28.20160309-1
 QT Version : 5.6.1
 Options compiled in:
  linux debug use_hidesyms using_alsa using_oss using_pulse
 using_pulseoutput using_backend using_bdjava using_bindings_perl
 using_bindings_python using_bindings_php using_crystalhd using_dvb
 using_firewire using_frontend using_hdhomerun using_vbox using_ceton
 using_hdpvr using_ivtv using_joystick_menu using_libcec using_libcrypto
 using_libdns_sd using_libfftw3 using_libxml2 using_lirc using_mheg
 using_opengl using_opengl_video using_opengl_themepainter using_qtwebkit
 using_qtscript using_qtdbus using_sdl using_taglib using_v4l2 using_x11
 using_xrandr using_xv using_debugtype using_mythlogserver using_bdjava
 using_bindings_perl using_bindings_python using_bindings_php
 using_fontconfig using_freetype2 using_mythtranscode using_opengl
 using_vaapi using_vdpau using_ffmpeg_threads using_mheg using_libass
 using_libxml2
 }}}

 '''Backtrace:'''
 {{{
 $ gdb mythfrontend
 Cannot make QOpenGLContext current in a different thread

 Thread 50 "Decoder" received signal SIGABRT, Aborted.
 [Switching to Thread 0x7ffe63541700 (LWP 9919)]
 __GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:58
 58      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
 (gdb) bt
 #0  0x00007ffff35defdf in __GI_raise (sig=sig at entry=6) at
 ../sysdeps/unix/sysv/linux/raise.c:58
 #1  0x00007ffff35e040a in __GI_abort () at abort.c:89
 #2  0x00007ffff4498dd1 in QMessageLogger::fatal(char const*, ...) const
 (context=..., message=<synthetic pointer>) at global/qlogging.cpp:1648
 #3  0x00007ffff4498dd1 in QMessageLogger::fatal(char const*, ...) const
 (this=this at entry=0x7ffe635402a0, msg=msg at entry=0x7ffff50f1d08 "Cannot make
 QOpenGLContext current in a different thread") at global/qlogging.cpp:790
 #4  0x00007ffff4d75073 in QOpenGLContext::makeCurrent(QSurface*)
 (this=0xd73ea0, surface=0xde2070) at kernel/qopenglcontext.cpp:954
 #5  0x00007fffec7302f2 in QGLContext::makeCurrent() (this=<optimized out>)
 at qgl.cpp:3574
 #6  0x00007ffff64c7dce in MythRenderOpenGL::makeCurrent() (this=0xdde340)
 at mythrender_opengl.cpp:294
 #7  0x00007ffff64c6094 in OpenGLLocker::OpenGLLocker(MythRenderOpenGL*)
 (this=0x7ffe63540380, render=0xdde340) at mythrender_opengl.cpp:50
 #8  0x00007ffff75b84e2 in VideoOutputOpenGL::SetupDeinterlace(bool,
 QString const&) (this=0x15abd10, interlaced=false, overridefilter=...) at
 videoout_opengl.cpp:762
 #9  0x00007ffff752ba1e in VideoOutput::FallbackDeint() (this=0x15abd10) at
 videooutbase.cpp:666
 #10 0x00007ffff74485fb in MythPlayer::ChangeSpeed() (this=0x1fc4f90) at
 mythplayer.cpp:3741
 #11 0x00007ffff743feea in MythPlayer::FileChangedCallback()
 (this=0x1fc4f90) at mythplayer.cpp:2708
 #12 0x00007ffff74abbcd in DecoderBase::FileChanged() (this=0xdaa500) at
 decoderbase.cpp:902
 #13 0x00007ffff74b6ed1 in NuppelDecoder::GetFrame(DecodeTypes)
 (this=0xdaa500, decodetype=kDecodeAV) at nuppeldecoder.cpp:1069
 #14 0x00007ffff74465de in MythPlayer::DecoderGetFrame(DecodeTypes, bool)
 (this=0x1fc4f90, decodetype=kDecodeAV, unsafe=false) at
 mythplayer.cpp:3469
 #15 0x00007ffff7445ef1 in MythPlayer::DecoderLoop(bool) (this=0x1fc4f90,
 pause=true) at mythplayer.cpp:3384
 #16 0x00007ffff742ad1c in DecoderThread::run() (this=0x1513a90) at
 mythplayer.cpp:97
 #17 0x00007ffff67c749d in MThreadInternal::run() (this=0x15990d0) at
 mthread.cpp:79
 #18 0x00007ffff44b1d78 in QThreadPrivate::start(void*) (arg=0x15990d0) at
 thread/qthread_unix.cpp:341
 #19 0x00007ffff41ee464 in start_thread (arg=0x7ffe63541700) at
 pthread_create.c:333
 #20 0x00007ffff369497f in clone () at
 ../sysdeps/unix/sysv/linux/x86_64/clone.S:105
 }}}

--
Ticket URL: <https://code.mythtv.org/trac/ticket/12902>
MythTV <http://www.mythtv.org>
MythTV Media Center


More information about the mythtv-commits mailing list