Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#37537 closed defect (invalid)

qt4-mac and qt4-mac-sqlite3-plugin create trouble

Reported by: mkae (Marko Käning) Owned by: michaelld (Michael Dickens)
Priority: Normal Milestone:
Component: ports Version: 2.1.2
Keywords: Cc:
Port: qt4-mac, qt4-mac-sqlite3-plugin

Description (last modified by mkae (Marko Käning))

There are two intertwined scenarios when I ran into trouble with qt4-mac and qt4-mac-sqlite3-plugin:


1) Developing the update of skrooge to version 1.4.0:

At first I hadn't qt4-mac-sqlite3-plugin installed during upgrading port skrooge from 1.3.3 to 1.4.0 and here is what I got when I tried to start the app:

QSqlDatabase: QSQLITE driver not loaded
QSqlDatabase: available drivers: QSQLITE3 QMYSQL3 QMYSQL
QSqlQuery::exec: database not open
##WARNING: PRAGMA table_info( doctransaction );
##         returns :Driver not loaded Driver not loaded

Please notice that QSQLITE3 is already listed as available driver!!! BUT, as you can see above it cannot be used. Weird, isn't it?
https://bugs.kde.org/show_bug.cgi?id=312668

This problem disappeared when I installed port qt4-mac-sqlite3-plugin - which I then added as a necessary dependency for skrooge!

Nice, but strange, since it caused my 2nd problem...


2) Running tests of kmymoney4-devel with qt4-mac-sqlite3-plugin installed

$ git clone git://anongit.kde.org/kmymoney
$
$ cd kmymoney; mkdir build; cd build; cmake ..   # this of course only succeeds if kmymoney-devel and all its deps are installed in MacPorts already
$
$ ccmake ..    # enable test by setting KDE4_BUILD_TESTS to ON
$
$ make
$
$ /opt/macports-test/bin/ctest --force-new-ctest-process -R databasemgrtest -V
UpdateCTestConfiguration  from :/Users/marko/WC/GIT/kmymoney.homeview-additional_columns/build/DartConfiguration.tcl
UpdateCTestConfiguration  from :/Users/marko/WC/GIT/kmymoney.homeview-additional_columns/build/DartConfiguration.tcl
Test project /Users/marko/WC/GIT/kmymoney.homeview-additional_columns/build
Constructing a list of tests
Done constructing a list of tests
Checking test dependency graph...
Checking test dependency graph end
test 20
    Start 20: kmymoney-mymoneydatabasemgrtest

20: Test command: /Users/marko/WC/GIT/kmymoney.homeview-additional_columns/build/kmymoney/mymoney/storage/mymoneydatabasemgrtest.app/Contents/MacOS/mymoneydatabasemgrtest
20: Test timeout computed to be: 9.99988e+06
20: ********* Start testing of MyMoneyDatabaseMgrTest *********
20: Config: Using QTest library 4.8.4, Qt 4.8.4
20: PASS   : MyMoneyDatabaseMgrTest::initTestCase()
.
.
.
20: PASS   : MyMoneyDatabaseMgrTest::testReparentAccount()
20: QFATAL : MyMoneyDatabaseMgrTest::testAddTransactions() Received signal 11
20: FAIL!  : MyMoneyDatabaseMgrTest::testAddTransactions() Received a fatal error.
20:    Loc: [Unknown file(0)]
20: Totals: 16 passed, 1 failed, 0 skipped
20: ********* Finished testing of MyMoneyDatabaseMgrTest *********
1/1 Test #20: kmymoney-mymoneydatabasemgrtest ...***Exception: Other  1.64 sec

0% tests passed, 1 tests failed out of 1

Total Test time (real) =   1.66 sec

The following tests FAILED:
	 20 - kmymoney-mymoneydatabasemgrtest (OTHER_FAULT)
Errors while running CTest

I haven't tried to check in detail what caused the errors in testAddTransactions() up to now...

However, if I now deactivate qt4-mac-sqlite3-plugin the test is running fine!


This is what I have installed:

$ port installed qt4-mac*
The following ports are currently installed:
  qt4-mac @4.8.4_2+debug+quartz (active)
  qt4-mac-mysql5-plugin @4.8.4_0+debug (active)
  qt4-mac-mysql55-plugin @4.8.4_0 (active)
  qt4-mac-sqlite3-plugin @4.8.4_0

What am I missing?

What can be done about this seemingly complex situation?

Change History (5)

comment:1 Changed 11 years ago by mkae (Marko Käning)

Description: modified (diff)

comment:2 Changed 11 years ago by mkae (Marko Käning)

Does the plugin perhaps need a revbump due to r101133?

comment:3 Changed 11 years ago by mkae (Marko Käning)

Resolution: invalid
Status: newclosed

Only now I saw that it looks as if the test passes successfully without the plugin installed:

$ /opt/macports-test/bin/ctest --force-new-ctest-process -R databasemgrtest 
Test project /Users/marko/WC/GIT/kmymoney.homeview-additional_columns/build
    Start 20: kmymoney-mymoneydatabasemgrtest
1/1 Test #20: kmymoney-mymoneydatabasemgrtest ...   Passed    0.08 sec

100% tests passed, 0 tests failed out of 1

Total Test time (real) =   0.09 sec

but if you get the detailed view one sees that the driver cannot be loaded:

$ /opt/macports-test/bin/ctest --force-new-ctest-process -R databasemgrtest -V
UpdateCTestConfiguration  from :/Users/marko/WC/GIT/kmymoney.homeview-additional_columns/build/DartConfiguration.tcl
UpdateCTestConfiguration  from :/Users/marko/WC/GIT/kmymoney.homeview-additional_columns/build/DartConfiguration.tcl
Test project /Users/marko/WC/GIT/kmymoney.homeview-additional_columns/build
Constructing a list of tests
Done constructing a list of tests
Checking test dependency graph...
Checking test dependency graph end
test 20
    Start 20: kmymoney-mymoneydatabasemgrtest

20: Test command: /Users/marko/WC/GIT/kmymoney.homeview-additional_columns/build/kmymoney/mymoney/storage/mymoneydatabasemgrtest.app/Contents/MacOS/mymoneydatabasemgrtest
20: Test timeout computed to be: 9.99988e+06
20: ********* Start testing of MyMoneyDatabaseMgrTest *********
20: Config: Using QTest library 4.8.4, Qt 4.8.4
20: PASS   : MyMoneyDatabaseMgrTest::initTestCase()
20: PASS   : MyMoneyDatabaseMgrTest::testEmptyConstructor()
20: QWARN  : MyMoneyDatabaseMgrTest::testCreateDb() QSqlDatabase: QSQLITE driver not loaded
20: QWARN  : MyMoneyDatabaseMgrTest::testCreateDb() QSqlDatabase: available drivers: QMYSQL3 QMYSQL
20: QDEBUG : MyMoneyDatabaseMgrTest::testCreateDb() Error in function int MyMoneyStorageSql::open(const KUrl&, int, bool) : opening new database
20: Driver = QSQLITE, Host = , User = , Database = 
20: Driver Error: Driver not loaded
20: Database Error No -1: Driver not loaded
20: Text: Driver not loaded Driver not loaded
20: Error type 1
20: Executed: 
20: Query error No -1: Driver not loaded Driver not loaded
20: Error type 1
.
.
.

so, this is already more like what I expected.

I'll invalidate the ticket for now until I have looked more into the test details with the plugin installed.

comment:4 Changed 11 years ago by mkae (Marko Käning)

Here the crash log for the failing test in the initial post:

Process:         mymoneydatabasemgrtest [23860]
Path:            /Users/marko/WC/GIT/kmymoney.homeview-additional_columns/build/kmymoney/mymoney/storage/mymoneydatabasemgrtest.app/Contents/MacOS/mymoneydatabasemgrtest
Identifier:      mymoneydatabasemgrtest
Version:         ??? (???)
Code Type:       X86-64 (Native)
Parent Process:  ctest [23859]

Date/Time:       2013-01-05 15:55:26.140 +0100
OS Version:      Mac OS X 10.6.8 (10K549)
Report Version:  6

Interval Since Last Report:          1498500 sec
Crashes Since Last Report:           51
Per-App Crashes Since Last Report:   33
Anonymous UUID:                      4ADD88F0-37AC-4BFC-BB40-8308C8DB47A2

Exception Type:  EXC_BAD_ACCESS (SIGABRT)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000103c9000300
Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Application Specific Information:
abort() called

Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
0   libSystem.B.dylib             	0x00007fff8a4720b6 __kill + 10
1   libSystem.B.dylib             	0x00007fff8a5129f6 abort + 83
2   QtCore                        	0x0000000101a60215 qt_message_output(QtMsgType, char const*) + 117
3   QtCore                        	0x0000000101a603f7 qt_message(QtMsgType, char const*, __va_list_tag*) + 183
4   QtCore                        	0x0000000101a605ba qFatal(char const*, ...) + 170
5   libSystem.B.dylib             	0x00007fff8a4841ba _sigtramp + 26
6   QtCore                        	0x0000000101a88d20 QHashData::free_helper(void (*)(QHashData::Node*)) + 128
7                                 	0x00000001000880dd MyMoneyDbTable::~MyMoneyDbTable() + 141
8                                 	0x0000000100071caf MyMoneyStorageSql::readSplit(MyMoneySplit&, QSqlQuery const&) const + 2399
9                                 	0x0000000100074753 MyMoneyStorageSql::fetchTransactions(QString const&, QString const&, bool) const + 5811
10                                	0x0000000100078eec MyMoneyStorageSql::fetchTransactions(MyMoneyTransactionFilter const&) const + 5772
11                                	0x0000000100092916 MyMoneyDatabaseMgr::transactionList(QList<MyMoneyTransaction>&, MyMoneyTransactionFilter&) const + 134
12                                	0x000000010008a2a3 MyMoneyDatabaseMgr::transactionList(MyMoneyTransactionFilter&) const + 51
13                                	0x0000000100021f6b MyMoneyDatabaseMgrTest::testAddTransactions() + 4667 (qlist.h:101)
14  QtCore                        	0x0000000101b8f32c QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const + 1548
15  QtCore                        	0x0000000101b917dc QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) + 1324
16  QtTest                        	0x00000001019cb30f QTest::qInvokeTestMethodDataEntry(char*) + 831
17  QtTest                        	0x00000001019cc02c QTest::qInvokeTestMethod(char const*, char const*) + 668
18  QtTest                        	0x00000001019cc7ca QTest::qExec(QObject*, int, char**) + 1546
19                                	0x0000000100008bfc main + 76 (mymoneydatabasemgrtest.cpp:26)
20                                	0x00000001000089d8 start + 52

comment:5 Changed 11 years ago by mkae (Marko Käning)

Removing the plugin and reinstalling it again did NOT solve this issue. So it's not caused by the SQlite update. :(

Note: See TracTickets for help on using tickets.