mythweather plugin 31-fixes segfault issue [Solved]

Have a MythTV related problem? Ask for help from other MythTV users here.

Moderator: Forum Moderators

Post Reply
glenb
Junior
Posts: 29
Joined: Sun Nov 17, 2019 7:48 am
United States of America

mythweather plugin 31-fixes segfault issue [Solved]

Post by glenb »

running version 31-fixes from arch aur. i run 3 plugins, mythmusic, mythnews and mythweather. mythweather causes the frontend to exit with a segfault after displaying the weather data. i am in the united states and use those scripts, the data is correctly gathered and displayed and i can navigate through the 3 screens i have setup (current, 3 day, 6 day) but when i escape to return to myth main menu. i get a segault with this message when i run from terminal to gather messages:

2020-04-20 14:11:59.240731 E Widget not found updatetime
2020-04-20 14:11:59.245388 E Widget not found updatetime
2020-04-20 14:11:59.245411 I Starting update of NDFD-6_day
2020-04-20 14:11:59.250537 I Starting update of NWS-XML
2020-04-20 14:12:00.816036 E Widget not found updatetime
2020-04-20 14:12:00.816904 E Widget not found updatetime
Handling Segmentation fault
Segmentation fault (core dumped)

i am using mythbuntu theme, but have tried others with same result. i have tried building from source in mythplugins directory with same result. i have also built from source in master branch and built from mythplugins source with same result and recently plugins were packaged in aur for myth31-fixes. this happens on backend machine and different machines used for frontends. b/e machine with frontend is nvidia. frontends it fails on are intel graphics based and amd graphics based. all machines are very current on arch system.

does anyone have any idea what i could try to correct this, or is this stuff so old it just can't run anymore ?
Last edited by glenb on Wed Apr 22, 2020 1:06 pm, edited 1 time in total.
User avatar
paulh
Developer
Posts: 909
Joined: Thu Feb 06, 2014 6:09 pm
Great Britain

Re: mythweather plugin 31-fixes segfault issue

Post by paulh »

Looks like something got broke I can also reproduce it in master :cry:

Unfortunately non of the plugins have any maintainers any more so this is unlikely to get fixed.

For anyone who want to try to fix it this is the BT (nothing stands out to me why it should crash there so it's going to require some investigation by someone).

Code: Select all

Thread 1 "mythfrontend" received signal SIGSEGV, Segmentation fault.
0x00007ffff3142f24 in QRegion::subtracted(QRegion const&) const () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
(gdb) thread full
Invalid thread ID: full
(gdb) bt full     
#0  0x00007ffff3142f24 in QRegion::subtracted(QRegion const&) const () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#1  0x00007ffff3143132 in QRegion::operator-(QRegion const&) const () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#2  0x00007ffff314318f in QRegion::operator-=(QRegion const&) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#3  0x00007ffff6d8f328 in MythUIType::Draw(MythPainter*, int, int, int, QRect) (this=0x31003100300030, p=0x555555b3e7d0, xoffset=0, yoffset=0, alphaMod=255, clipRect=...) at mythuitype.cpp:474
        realArea = {x1 = -12496, y1 = 32767, x2 = 1453048992, y2 = 21845}
        it = {i = 0x5555569bc4a0}
#4  0x00007ffff6d3c7de in MythMainWindow::Draw(MythPainter*) (this=0x555555a782a0, Painter=0x555555b3e7d0) at mythmainwindow.cpp:482
        screen = @0x5555569bc4b8: 0x31003100300030
        _container_ = {c = {d = 0x5555569bc4a0}, i = 0x5555569bc4b8, e = 0x5555569e6f60, control = 1}
        redrawList = {d = 0x5555569bc4a0}
        widget = @0x555555a784d8: 0x555556d75820
        _container_ = {c = {d = 0x555555a784a0}, i = 0x555555a784d8, e = 0x555555a784e0, control = 1}
        rect = @0x55555697b610: {x1 = 0, y1 = 0, x2 = 1279, y2 = 719}
        __for_range = @0x555555a782e0: {d = 0x7fff20013f00, static shared_empty = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, qt_rgn = 0x7ffff3323960}}
        __for_begin = 0x55555697b610
        __for_end = 0x55555697b620
#5  0x00007ffff6d3c48b in MythMainWindow::drawScreen(QPaintEvent*) (this=0x555555a782a0, Event=0x0) at mythmainwindow.cpp:445
#6  0x00007ffff6e97791 in MythPainterWindowOpenGL::paintEvent(QPaintEvent*) (this=0x555555c0e3d0) at opengl/mythpainterwindowopengl.cpp:50
#7  0x00007ffff62d104e in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#8  0x00007ffff628ea86 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#9  0x00007ffff6297e00 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#10 0x00007ffff258da2a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#11 0x00007ffff62c9bba in QWidgetPrivate::sendPaintEvent(QRegion const&) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007ffff62ca3f9 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007ffff629ed7d in QWidgetPrivate::repaint_sys(QRegion const&) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007ffff62b8f38 in QWidgetPrivate::syncBackingStore() () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007ffff62d1408 in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007ffff628ea86 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007ffff6297e00 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007ffff258da2a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#19 0x00007ffff25906a8 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007ffff25e6037 in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007fffec41e8bd in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007fffec41eb40 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#23 0x00007fffec41ebe3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007ffff25e5635 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007ffff258c5cb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#26 0x00007ffff2594336 in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#27 0x00005555555dfc3d in main(int, char**) (argc=3, argv=0x7fffffffdfa8) at main.cpp:2187
        bPromptForBackend = false
        bBypassAutoDiscovery = false
        cmdline = 
            {<MythCommandLineParser> = {_vptr.MythCommandLineParser = 0x555555947f40 <vtable for MythFrontendCommandLineParser+16>, m_appname = {static null = {<No data fields>}, d = 0x5555559c4ea0}, m_optionedArgs = {d = 0x5555559c5440}, m_namedArgs = {d = 0x5555559c53b0}, m_passthroughActive = false, m_overridesImported = true, m_verbose = false}, <No data fields>}
        callCleanup = {m_cleanFunction = 0x5555555d0f43 <(anonymous namespace)::cleanup()>}
        signallist = {<QListSpecialMethods<int>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x555555a7dee0}, d = 0x555555a7dee0}}
        retval = 0
        ResetSettings = false
        __FUNCTION__ = "main"
        fileprefix = {static null = {<No data fields>}, d = 0x555555a76340}
        dir = {d_ptr = {d = 0x555555a89280}}
        bonjour = {d = 0x555555bcf590}
        themename = {static null = {<No data fields>}, d = 0x555555c309b0}
        themedir = {static null = {<No data fields>}, d = 0x555555c765d0}
        mainWindow = 0x555555a782a0
        mon = 0x5555563c0d50
        networkControl = 0x0
        themeUpdateChecker = 0x555556204c80
        sysEventHandler = 0x5555561fea50
        bcm = 
          {<QObject> = {<No data fields>}, static staticMetaObject = {d = {superdata = 0x7ffff283e980 <QObject::staticMetaObject>, stringdata = 0x55555589cb00 <qt_meta_stringdata_BackendConnectionManager>, data = 0x55555589cb80 <qt_meta_data_BackendConnectionManager>, static_metacall = 0x555555853148 <BackendConnectionManager::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_reconnecting = 0x0, m_reconnect_timer = 0x5555561f3a80, m_reconnect_again = false}
        housekeeping = 0x555556c45530
        ret = -1
User avatar
paulh
Developer
Posts: 909
Joined: Thu Feb 06, 2014 6:09 pm
Great Britain

Re: mythweather plugin 31-fixes segfault issue

Post by paulh »

A quick follow up on this. It turns out this was caused by some code clean up that didn't quite work as intended so has be reverted by David Hampton.
https://github.com/MythTV/mythtv/commit/917a2087ef032b
https://code.mythtv.org/trac/ticket/13613

I've tested master and it works now. Please update and test fixes/31 and report back.
glenb
Junior
Posts: 29
Joined: Sun Nov 17, 2019 7:48 am
United States of America

Re: mythweather plugin 31-fixes segfault issue

Post by glenb »

my backend currently recording, but tested on a frontend, and it works now! thanks so much for looking into and fixing this. i appreciate your time and help..
User avatar
Steve Goodey
Moderator
Posts: 220
Joined: Fri Feb 07, 2014 6:30 pm
Location: Colchester, England
Great Britain

Re: mythweather plugin 31-fixes segfault issue

Post by Steve Goodey »

Hello,

If you're happy with the fix could you possibly added [Solved] to the subject line in the first post?

Ta.
Don't forget the Wiki.
Post Reply