Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
4.7.0
-
Embedded Linux for Broadcom BCM7420 board
-
e231da119daec62c0aa2cee055c539154a0f935d
Description
When accessing an sqlite database holding an electronic program guide, the following crash occurs:
0x2b71a85c in sqlite3DbMallocRaw () from /export/cora/latest/qt/plugins/sqldriver
#1 0x2b730cec in sqlite3VdbeMemGrow () from /export/cora/latest/qt/plugins/sqldriver
#2 0x2b745148 in allocateCursor () from /export/cora/latest/qt/plugins/sqldrivers/li
#3 0x2b7870bc in sqlite3VdbeExec () from /export/cora/latest/qt/plugins/sqldrivers/#4 0x2b776558 in sqlite3_step () from /export/cora/latest/qt/plugins/sqldrivers/libq
#5 0x2b716060 in QSQLiteResultPrivate::fetchNext(QVector<QVariant>&, int, bool) ()
from /export/cora/latest/qt/plugins/sqldrivers/libqsqlite.so
#6 0x2b716e98 in QSQLiteResult::exec() () from /export/cora/latest/qt/plugins/sqldri
#7 0x2b0f52b8 in QSqlQuery::exec() () from /export/cora/latest/qt/lib/libQtSql.so.4
#8 0x2b0cae54 in ?? () from /export/cora/latest/qt/pace/lib/libsql_api.so.1
#9 0x2b0b75a4 in sql_api_open () from /export/cora/latest/qt/pace/lib/libsql_api.so.
#10 0x2aefce18 in open_data_base (id=DATABASE_SERVICE_LIST) at listing_engine_sql.c:#11 0x2aefb8cc in init_storage_thread () at listing_engine_sql.c:39
#12 0x00401240 in main (argc=1, argv=0x7fa72134) at ble_app.c:87
This crash can be fixed by applying the following fix:
http://www.sqlite.org/src/info/d6ae275122
Qt 4.7.0 uses sqlite v3.6.19 in src/3rdparty/sqlite. This sqlite version contains the bug.
The problem depends at least on the optimization level of the compiler and the version of the compiler. The problem occurs for gcc 4.4.3 with option -O2, but not with -O0 or -O1. It does not occur at all for gcc 4.2.0 - no matter which optimization level is used. It seems to depend on the platform/OS, too.