bugGNU Octave - Bugs: bug #53617, GUI exits with SIGABRT from failed...

 
 

bug #53617: GUI exits with SIGABRT from failed qt_assert in QHelpSearchEngine with Qt 5.10

Submitter:  Mike Miller <mtmiller>
Submitted:  Wed 11 Apr 2018 09:10:14 PM UTC
   
 
Category:  GUI Severity:  4 - Important
Priority:  5 - Normal Item Group:  Segfault, Bus Error, etc.
Status:  Wont Fix Assigned to:  None
Originator Name:  Open/Closed:  * Closed
Release:  * dev Operating System:  * GNU/Linux
Fixed Release:  None Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Sat 28 Jul 2018 04:53:58 AM UTC, comment #5: 

Marking this as an upstream bug.

Rik <rik5>
Group administrator
Fri 13 Apr 2018 07:35:55 PM UTC, comment #4: 

This may be the following Qt bug:

https://bugreports.qt.io/browse/QTBUG-66443

which says it is fixed in the latest Qt 5.11.0 beta.

I only say may because I can't verify for sure that the Octave crash and the symptom in the Qt bug report are the same, but it is crashing on the same line of code with the same assertion failure.

Mike Miller <mtmiller>
Group Member
Wed 11 Apr 2018 11:35:05 PM UTC, comment #3: 

Reverting back to Qt 5.9 makes this go away, so yes, this looks like a bug introduced in Qt 5.10 or 5.10.1, and is probably on them to fix.

However, I just installed Qt 5.10.1 packages from the Debian archive and I can't reproduce this bug building and running normally.

Mike Miller <mtmiller>
Group Member
Wed 11 Apr 2018 10:25:41 PM UTC, comment #2: 

Hmm, the place in the Qt SQLite driver where this assertion failure occurs was new in Qt 5.10, so any older Qt isn't affected.

My distribution is still on Qt 5.9.2, so now I don't know if this crash only occurs in the flatpak environment, or it only occurs with Qt 5.10.1.

The Qt change and follow-up changes related to this:

https://code.qt.io/cgit/qt/qtbase.git/commit/?id=9076046a109cb8c60254314f7d29f7e044c5946f
https://code.qt.io/cgit/qt/qtbase.git/commit/?id=52b85212a2ec8ec5bf187f6cd00b669a45bcf0bd
https://code.qt.io/cgit/qt/qtbase.git/commit/?id=3e58f2b090661aab7302132cb2da661c8e227bc2

From what I've been able to glean from gdb, the QHelpSearchEngine's search index writer object is attempting to write a sqlite database with the following


    query.prepare(QLatin1String("INSERT INTO info (namespace, attributes, url, title, data) VALUES (?, ?, ?, ?, ?)"));
    query.addBindValue(m_namespaces);
    query.addBindValue(m_attributes);
    query.addBindValue(m_urls);
    query.addBindValue(m_titles);
    query.addBindValue(m_contents);
    query.execBatch();


where all of the bound values are empty (size==0) QVariantLists.

Mike Miller <mtmiller>
Group Member
Wed 11 Apr 2018 09:15:23 PM UTC, comment #1: 

The assert is in the "fulltextsearch" thread that is created by the QHelpSearchEngine.

The stack trace of the thread is


#0  0x000000381fa3304f in __GI_raise (sig=sig@entry=6) at /usr/src/debug/glibc/2.24-r0/git/sysdeps/unix/sysv/linux/raise.c:58
#1  0x000000381fa3447a in __GI_abort () at /usr/src/debug/glibc/2.24-r0/git/stdlib/abort.c:89
#2  0x00007ffff3cdf174 in qt_message_fatal(QtMsgType, QMessageLogContext const&, QString const&) (context=..., message=...) at global/qlogging.cpp:1716
#3  0x00007ffff3cdfd27 in QMessageLogger::fatal(char const*, ...) const (this=this@entry=0x7fffe30245b0, msg=msg@entry=0x7ffff3f77978 "ASSERT: \"%s\" in file %s, line %d") at global/qlogging.cpp:822
#4  0x00007ffff3cd937a in qt_assert(char const*, char const*, int) (assertion=assertion@entry=0x7fffd014cb9b "!isEmpty()", file=file@entry=0x7fffd014c658 "/run/build-runtime/qt5-qtbase/include/QtCore/../../src/corelib/tools/qlist.h", line=line@entry=345) at global/qglobal.cpp:3126
#5  0x00007fffd0148081 in QSQLiteResult::exec() (this=<optimized out>) at /run/build-runtime/qt5-qtbase/include/QtCore/../../src/corelib/tools/qlist.h:345
#6  0x00007fffd0148081 in QSQLiteResult::exec() (this=0x7fffac32d5d0) at qsql_sqlite.cpp:491
#7  0x00007ffff41847fe in QSqlResult::execBatch(bool) (this=0x7fffac32d5d0, arrayBind=<optimized out>) at kernel/qsqlresult.cpp:959
#8  0x00007ffff416feae in QSqlQuery::execBatch(QSqlQuery::BatchExecutionMode) (this=this@entry=0x7fffe30248a0, mode=mode@entry=QSqlQuery::ValuesAsRows) at kernel/qsqlquery.cpp:1063
#9  0x00007ffff4e865ac in fulltextsearch::qt::Writer::flush() (this=this@entry=0x7fffe3024ac0) at qhelpsearchindexwriter_default.cpp:217
#10 0x00007ffff4e8826e in fulltextsearch::qt::QHelpSearchIndexWriter::run() (this=0x7f8c30) at qhelpsearchindexwriter_default.cpp:520
#11 0x00007ffff3cf8106 in QThreadPrivate::start(void*) (arg=0x7f8c30) at thread/qthread_unix.cpp:376
#12 0x0000003820207444 in start_thread (arg=0x7fffe302c700) at /usr/src/debug/glibc/2.24-r0/git/nptl/pthread_create.c:456
#13 0x000000381fae827f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105


Mike Miller <mtmiller>
Group Member
Wed 11 Apr 2018 09:10:14 PM UTC, original submission:  

The 4.3.90 release candidate exits with a SIGABRT raised from a failed qt_assert, due to some error in the Qt help full text search indexing that happens in the background automatically when the GUI starts.

I can only reproduce this bug when running Octave as a Flatpak containerized application. I do plan on investigating further and adding information as I go, but I wanted to at least log this against the current release candidate, maybe someone else sees this error in a different runtime environment.

Mike Miller <mtmiller>
Group Member

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by rik5 (Posted a comment)
  • -email is unavailable- added by mtmiller (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.

     

    Follow 4 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2018-08-02 mtmiller Open/ClosedOpen Closed
    2018-07-28 rik5 StatusNone Wont Fix
    2018-04-27 mtmiller Release4.3.90 dev
    2018-04-12 mtmiller SummaryGUI exits with SIGABRT from failed qt_assert when running in Flatpak container environment GUI exits with SIGABRT from failed qt_assert in QHelpSearchEngine with Qt 5.10

    Back to the top

    Powered by Savane 3.13-758e.
    Corresponding source code