Summary: | kexi crash when creating new sql3lite database | ||
---|---|---|---|
Product: | [Applications] KEXI | Reporter: | Emmeran Seehuber <rototor> |
Component: | General | Assignee: | Jarosław Staniek <staniek> |
Status: | CLOSED FIXED | ||
Severity: | crash | CC: | a.szymanski, opensource, yjacolin |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Gentoo Packages | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Emmeran Seehuber
2004-11-02 10:53:40 UTC
Could you insert this line: kdDebug() << "drv_useDatabase(): " << m_data->fileName() << endl; at line 124 of kexidb/drivers/sqlite/sqliteconnection.cpp and compile, try again and show me the backtrace? Also, could you do configure with --enable-debug=full option? Ok, did this. Here is the console output: [...] KexiDB: Object ERROR: 0: KexiDB: Object ERROR: 0: KexiDB: Object ERROR: 0: kexi: WARNING: KexiConnSelector::KexiConnSelector(): no driver found for 'postgresql'! kexi: ********** sender() QPushButton kexi: ********** sender()==finishButton() ******** kexi: selectedURL() == /tmp/t/kexi-0.1beta5/New_database.kexi kexi: filter == *.kexi kexi: KexiStartupFileDialog::currentFileName() == /tmp/t/kexi-0.1beta5/New_database.kexi kexi: KexiStartupFileDialog::checkURL() path: /tmp/t/kexi-0.1beta5/New_database.kexi kexi: selectedURL() == /tmp/t/kexi-0.1beta5/New_database.kexi kexi: filter == *.kexi kexi: KexiStartupFileDialog::currentFileName() == /tmp/t/kexi-0.1beta5/New_database.kexi kexi: selectedURL() == /tmp/t/kexi-0.1beta5/New_database.kexi kexi: filter == *.kexi kexi: KexiStartupFileDialog::currentFileName() == /tmp/t/kexi-0.1beta5/New_database.kexi kexi: selectedURL() == /tmp/t/kexi-0.1beta5/New_database.kexi kexi: filter == *.kexi kexi: KexiStartupFileDialog::currentFileName() == /tmp/t/kexi-0.1beta5/New_database.kexi kexi: Manager::lookup(): kexi/table kexi: Manager::lookup(): kexi/form kexi: Manager::lookup(): kexi/query kexi: Manager::lookup(): kexi/relation kexi: Manager::lookup(): inserting info to kexi/table kexi: Manager::lookup(): inserting info to kexi/query kexi: Manager::lookup(): inserting info to kexi/form kexi: Manager::lookup(): inserting info to kexi/relation kexi: drv_useDatabase(): /tmp/t/kexi-0.1beta5/New_database.kexi kexi: btree.c:1043: sqlite3BtreeOpen: Zusicherung »sizeof(ptr)==sizeof(char*)« nicht erfüllt. KCrash: Application 'kexi' crashing... And the crash report: [New Thread 16384 (LWP 7364)] [KCrash handler] #4 0x405b37b1 in kill () from /lib/libc.so.6 #5 0x40520751 in pthread_kill () from /lib/libpthread.so.0 #6 0x40520aa5 in raise () from /lib/libpthread.so.0 #7 0x405b3404 in raise () from /lib/libc.so.6 #8 0x405b4a58 in abort () from /lib/libc.so.6 #9 0x405accb9 in __assert_fail () from /lib/libc.so.6 #10 0x40b41c1c in sqlite3BtreeOpen ( zFilename=0x82ba478 "/tmp/t/kexi-0.1beta5/New_database.kexi", ppBtree=0x81e7b84, flags=0) at btree.c:1043 #11 0x40b5cb08 in sqlite3BtreeFactory (db=0x81e7b78, zFilename=0x82ba478 "/tmp/t/kexi-0.1beta5/New_database.kexi", omitJournal=0, nCache=2000, ppBtree=0x81e7b84) at main.c:846 #12 0x40b5d62c in openDatabase ( zFilename=0x82ba478 "/tmp/t/kexi-0.1beta5/New_database.kexi", ppDb=0x8156a30) at main.c:1124 #13 0x40b5d782 in sqlite3_open ( zFilename=0x82ba478 "/tmp/t/kexi-0.1beta5/New_database.kexi", ppDb=0x8156a30) at main.c:1167 #14 0x40b2b000 in KexiDB::SQLiteConnection::drv_useDatabase(QString const&) ( this=0x8289aa0) at sqliteconnection.cpp:132 #15 0x40b2aec1 in KexiDB::SQLiteConnection::drv_createDatabase(QString const&) (this=0x8289aa0, dbName=@0xbffff060) at sqliteconnection.cpp:113 #16 0x402c1487 in KexiDB::Connection::createDatabase(QString const&) ( this=0x8289aa0, dbName=@0xbffff060) at connection.cpp:364 #17 0x40213a74 in KexiProject::create(bool) (this=0x827fb70, forceOverwrite=true) at kexiproject.cpp:138 #18 0x40061826 in KexiMainWindowImpl::createBlankProject() (this=0x81e9e48) at keximainwindowimpl.cpp:1683 #19 0x4005c540 in KexiMainWindowImpl::startup() (this=0x81e9e48) at keximainwindowimpl.cpp:755 #20 0x4001a39c in kdemain (argc=1, argv=0xbffff304) at main.cpp:169 #21 0x08048866 in main (argc=1, argv=0xbffff304) at kexi.la.cpp:2 #22 0x405a0460 in __libc_start_main () from /lib/libc.so.6 HMm. The crash is due to failed assertion (kexi/3rdparty/kexisql3/src/btree.c, line 1043): assert( sizeof(ptr)==sizeof(char*) ); What's your hardware architecture? 64 bit? I thought I've got a Pentium 4 with 32 Bit ... kexi: Manager::lookup(): inserting info to kexi/form kexi: Manager::lookup(): inserting info to kexi/relation kexi: drv_useDatabase(): /tmp/t/kexi-0.1beta5/New_database.kexi sizeof(ptr)= 8, sizeof(char*) = 4 kexi: btree.c:1044: sqlite3BtreeOpen: Zusicherung »sizeof(ptr)==sizeof(char*)« nicht erfüllt. KCrash: Application 'kexi' crashing... It seems that ptr gets defined wrong. Why is it 8 byte big ? I reported this to sqlite authors. Patches will be applied soon. Commited fix to kexi/3rdparty/. please recompile this directory. kexi/../config.h file is reused, I am curious if SIZEOF_CHAR_P (see config.h) is defined as 8 on your platform? If so, everything could work now. SIZEOF_CHAR_P is 4 on my platform. But the current CVS HEAD of Kexi works for me now. So I think this bug is fixed and can be closed. Looks fixed. *** Bug 93123 has been marked as a duplicate of this bug. *** *** Bug 94280 has been marked as a duplicate of this bug. *** *** Bug 100159 has been marked as a duplicate of this bug. *** |