Modify

Opened 2 years ago

Last modified 18 months ago

#12477 new Bug Report - General

[Qt5] mythdownloadmanager triggers "QIODevice::read: device not open"

Reported by: stuarta Owned by: stuarta
Priority: minor Milestone: 29.0
Component: Qt5 issues Version: Master Head
Severity: medium Keywords: qt5 housekeeper
Cc: Ticket locked: no

Description (last modified by stuarta)

I've set QT_FATAL_WARNINGS to kill the backend each time this triggers.

The logs are as follows when this is hit

2015-07-25 03:30:37.386411 I [16365/16365] CoreContext housekeeper.cpp:725 (Run) - Queueing HouseKeeperTask 'ThemeUpdateNotifications'.
2015-07-25 03:30:37.386628 I [16365/17773] HouseKeeping mythdbcon.cpp:422 (PurgeIdleConnections) - New DB connection, total: 10
2015-07-25 03:30:37.415024 I [16365/17773] HouseKeeping housekeeper.cpp:135 (Run) - Running HouseKeeperTask 'ThemeUpdateNotifications'.
2015-07-25 03:31:37.688461 E [16365/17773] HouseKeeping backendhousekeeper.cpp:439 (LoadVersion) - HouseKeeper: Failed to download http://themes.mythtv.org/themes/repository/trunk/themes.zip remote themes info package.
2015-07-25 03:31:37.688488 I [16365/17773] HouseKeeping backendhousekeeper.cpp:378 (DoRun) - Loading themes for trunk
2015-07-25 03:31:37.688500 I [16365/17773] HouseKeeping housekeeper.cpp:149 (Run) - HouseKeeperTask 'ThemeUpdateNotifications' Failed.
2015-07-25 03:31:37.731998 C [16365/16365] CoreContext signalhandling.cpp:305 (handleSignal) - Received Aborted: Code -6, PID 16365, UID 1005, Value 0x00000000

and a second occurance

2015-07-26 11:58:34.381847 I [26576/26576] CoreContext housekeeper.cpp:725 (Run) - Queueing HouseKeeperTask 'ThemeUpdateNotifications'.
2015-07-26 11:58:34.382061 I [26576/26615] HouseKeeping mythdbcon.cpp:422 (PurgeIdleConnections) - New DB connection, total: 10
2015-07-26 11:58:34.386884 I [26576/26615] HouseKeeping housekeeper.cpp:135 (Run) - Running HouseKeeperTask 'ThemeUpdateNotifications'.
2015-07-26 11:58:54.296781 N [26576/26603] Expire autoexpire.cpp:264 (CalcParams) - AutoExpire: CalcParams(): Max required Free Space: 2.0 GB w/freq: 15 min
2015-07-26 11:59:34.546783 E [26576/26615] HouseKeeping backendhousekeeper.cpp:439 (LoadVersion) - HouseKeeper: Failed to download http://themes.mythtv.org/themes/repository/trunk/themes.zip remote themes info package.
2015-07-26 11:59:34.546810 I [26576/26615] HouseKeeping backendhousekeeper.cpp:378 (DoRun) - Loading themes for trunk
2015-07-26 11:59:34.546824 I [26576/26615] HouseKeeping housekeeper.cpp:149 (Run) - HouseKeeperTask 'ThemeUpdateNotifications' Failed.
2015-07-26 11:59:34.554787 C [26576/26576] CoreContext signalhandling.cpp:305 (handleSignal) - Received Aborted: Code -6, PID 26576, UID 1005, Value 0x00000000

Attachments (0)

Change History (4)

comment:1 Changed 2 years ago by stuarta

  • Description modified (diff)

comment:2 Changed 2 years ago by stuarta

  • Summary changed from [Qt5] housekeeper triggers "QIODevice::read: device not open" to [Qt5] mythdownloadmanager triggers "QIODevice::read: device not open"

Have captured this in the debugger now.

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7f75de7fc700 (LWP 13784)]
0x00007f76b758acc9 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56      ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.

(gdb) bt
#0  0x00007f76b758acc9 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007f76b758e0d8 in __GI_abort () at abort.c:89
#2  0x00007f76b83dc30e in QMessageLogger::warning(char const*, ...) const ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007f76b850ceca in QIODevice::read(char*, long long) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f76b850d5d9 in QIODevice::readAll() ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f76ba8dca02 in MythDownloadManager::downloadFinished (this=0x7f75d800e5d0,
    dlInfo=0x7f75d800d0b0) at mythdownloadmanager.cpp:1225
#6  0x00007f76ba8db915 in MythDownloadManager::downloadFinished (this=0x7f75d800e5d0,
    reply=0x7f767401e8a0) at mythdownloadmanager.cpp:1087
#7  0x00007f76ba9a0d39 in MythDownloadManager::qt_static_metacall (_o=0x7f75d800e5d0,
    _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7f75de7fb8e0)
    at moc_mythdownloadmanager.cpp:89
#8  0x00007f76b85e62a6 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007f76b90a05c2 in QNetworkAccessManager::finished(QNetworkReply*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Network.so.5
#10 0x00007f76b90a0eb4 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Network.so.5
#11 0x00007f76b90a2d69 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Network.so.5
#12 0x00007f76b85e722e in QObject::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#13 0x00007f76b85beefd in QCoreApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#14 0x00007f76b85bec2d in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#15 0x00007f76b85c0e07 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x00007f76b860bcd3 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#17 0x00007f76af6eae04 in g_main_context_dispatch ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007f76af6eb048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007f76af6eb0ec in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007f76b860b98c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007f76ba8d503e in MythDownloadManager::run (this=0x7f75d800e5d0)
    at mythdownloadmanager.cpp:292
#22 0x00007f76ba86388d in MThreadInternal::run (this=0x7f75d80057e0) at mthread.cpp:79
#23 0x00007f76b83ea233 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x00007f76b8141182 in start_thread (arg=0x7f75de7fc700) at pthread_create.c:312
#25 0x00007f76b764e47d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

So this points to the download manager not handling a disconnected endpoint. Relevant code is as follows

1220         // If we downloaded via the QNetworkAccessManager
1221         // AND the caller isn't handling the reply directly
1222         if (reply && dlInfo->m_processReply)
1223         {
1224             bool append = (!dlInfo->m_syncMode && dlInfo->m_caller);
1225             QByteArray data = reply->readAll();
1226             dataSize = data.size();

The QByteArray data = reply->readAll(); is where the issue occurs

comment:3 Changed 18 months ago by stuarta

  • Milestone changed from 0.28 to 0.29

I've not seen this for a while, moving out of 0.28 to review again with 0.29

comment:4 Changed 18 months ago by stuarta

  • Milestone changed from 0.29 to 29.0

Milestone renamed

Add Comment

Modify Ticket

Action
as new The owner will remain stuarta.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.