Opened 3 years ago

Closed 3 years ago

Last modified 14 months ago

#12668 closed Bug Report - General (Duplicate)

Crash in Mythtv backend while deleting recording from web interface (port 6544)

Reported by: mythtv@… Owned by: Bill Meek
Priority: major Milestone: 0.28.1
Component: MythTV - Services API - Backend Version: Master Head
Severity: medium Keywords:
Cc: Ticket locked: no

Description (last modified by Stuart Auchterlonie)

2016-02-28 00:42:12.744328 N  AutoExpire: CalcParams(): Max required Free Space: 52.0 GB w/freq: 14 min
2016-02-28 00:42:12.749932 N  Expiring 54 MB for 10004 at 2012-05-26T11:35:00Z => "Teleshop 4":Woningwijs
2016-02-28 00:42:12.753665 N  Expiring 2038 MB for 10002 at 2012-07-28T17:58:00Z => "NOS Journaal"
2016-02-28 00:42:12.757577 E  MainServer: ERROR when trying to delete file: myth://test-myth/10004_20120526133500.mpg. File doesn't exist.  Database metadata will not be removed.
2016-02-28 00:42:12.764945 E  MainServer: ERROR when trying to delete file: myth://test-myth/10002_20120728195800.mpg. File doesn't exist.  Database metadata will not be removed.
*** Error in `mythbackend': corrupted double-linked list: 0x93bb5310 ***
======= Backtrace: =========
/lib/libc.so.6(+0x77a1d)[0xb24e6a1d]
/lib/libc.so.6(+0x7900f)[0xb24e800f]
/usr/lib/libQt5Core.so.5(_ZN10QArrayData10deallocateEPS_jj+0x25)[0xb27e66c5]
/usr/lib/libQt5Core.so.5(+0x26a108)[0xb29c6108]
/usr/lib/libQt5Core.so.5(+0x260d68)[0xb29bcd68]
/usr/lib/libQt5Core.so.5(+0x2613c6)[0xb29bd3c6]
/usr/lib/libQt5Core.so.5(_ZNK14QFactoryLoader8instanceEi+0x31c)[0xb29b44ac]
/usr/lib/libQt5Gui.so.5(+0x12d7ff)[0xb316d7ff]
/usr/lib/libQt5Gui.so.5(_ZN12QImageWriter21supportedImageFormatsEv+0x2a0)[0xb316e290]
mythbackend[0x81e33f3]
/usr/local/lib/libmythservicecontracts-0.28.so.0(+0x1b53a)[0xb492a53a]
/usr/local/lib/libmythservicecontracts-0.28.so.0(_ZN15ContentServices11qt_metacallEN11QMetaObject4CallEiPPv+0x76)[0xb492acba]
mythbackend[0x820ca15]
/usr/local/lib/libmythupnp-0.28.so.0(_ZN10MethodInfo6InvokeEP7ServiceRK4QMapI7QStringS3_E+0x60d)[0xb534dd13]
/usr/local/lib/libmythupnp-0.28.so.0(_ZN11ServiceHost14ProcessRequestEP11HTTPRequest+0xe4b)[0xb534f999]
/usr/local/lib/libmythupnp-0.28.so.0(_ZN10HttpServer15DelegateRequestEP11HTTPRequest+0x296)[0xb53069e2]
/usr/local/lib/libmythupnp-0.28.so.0(+0x5fc30)[0xb5307c30]
/usr/local/lib/libmythbase-0.28.so.0(+0x3ab4d)[0xb50fbb4d]
/usr/local/lib/libmythbase-0.28.so.0(+0x37a29)[0xb50f8a29]
/usr/lib/libQt5Core.so.5(+0x890e5)[0xb27e50e5]
/lib/libpthread.so.0(+0x6955)[0xb2748955]
/lib/libc.so.6(clone+0x5e)[0xb255785e]

Change History (10)

comment:1 Changed 3 years ago by Stuart Auchterlonie

Component: MythTV - GeneralMythTV - Web Frontend
Description: modified (diff)
Milestone: unknown0.28
Owner: set to stuartm
Priority: minormajor
Status: newassigned

comment:2 Changed 3 years ago by Stuart Auchterlonie

Milestone: 0.280.28.1

Moving unresolved tickets to next point release

comment:3 Changed 3 years ago by xtrab@…

I just wanted to point out that the same thing happens when you try to delete a recording from either MythWeb or Web Frontend.

comment:4 Changed 3 years ago by stuartm

Which version of QT? There is a known bug in one version which could explain this.

Otherwise we need a backtrace as described in the ticket how-to

comment:5 Changed 3 years ago by xtragb@…

I am using Qt 5.6.0 on Arch linux. I suspected a Qt bug based on this error message in the kernel ring buffer:

"segfault at 10 ip 00007fe68048dd10 sp 00007fe57f7fcfd0 error 4 in libQt5Core.so.5.6.0[7fe680203000+4bf000]"

What's the last known working version of Qt?

comment:6 Changed 3 years ago by xtragb@…

This problem seems to be related to GCC 6 and "some non-conforming code-bases" including Qt-5 as stated here https://gcc.gnu.org/gcc-6/changes.html. A workaround is to build Qt5 with the GCC flag -fno-delete-null-pointer-checks. This issue has been discussed on the Qt Development mailing list http://lists.qt-project.org/pipermail/development/2016-March/025153.html but it clearly has not been fixed as of the 5.6 release.

comment:7 Changed 3 years ago by Zoltán Karcagi <zkr@…>

In c3a7929853026d98fb85bf76a79061d6b02f9b47/mythtv:

Refs #12782 Fix segmentation fault in QMetaObject::indexOfClassInfo()
Also Refs #12668

The NULL check for pMetaProp in xmlSerializer.cpp should protect the
GetContentName?() call too.

(cherry picked from commit 36e180fbf8809f3c357e2eff6e5623b5abb67c4d)
Signed-off-by: Stuart Auchterlonie <stuarta@…>

comment:8 Changed 3 years ago by Stuart Auchterlonie

Owner: changed from stuartm to Bill Meek

Bill,

This appears related to #12782 which you are working on.

Regards Stuart

comment:9 Changed 3 years ago by Bill Meek

Component: MythTV - Web FrontendMythTV - Services API - Backend
Resolution: Duplicate
Status: assignedclosed

OP:

Closing because the solution is likely being tracked in #12782. A true backtrace from gdb as requested earlier would confirm the issue. The original backtrace doesn't provide the necessary information. It does, however, reference QMetaObject. It doesn't have indexOfClassInfo in it, which is where the SEGV fires.

This is a good test:

curl --data RecordedId=12345 <backend>:6544/Dvr/DeleteRecording

The above works on 29-pre but drops core in 0.28. Just use a RecordedId that you don't have, no need to actually delete a recording. The a good response will be: false.

If the gdb output points to another method, then please reopen.

comment:10 Changed 14 months ago by Bill Meek

Owner: changed from Bill Meek to Bill Meek
Note: See TracTickets for help on using tickets.