Re: [sqlite] core dump when writing the DB in the middle of the long read
More detailed core dump info. (gdb) bt #0 0x2c673d5c in memset () from /lib32/libc.so.6 #1 0x2c7b0fa8 in sqlite3VdbeHalt () from /ovn/lib/libsqlite3.so.3 #2 0x2c7b1904 in sqlite3VdbeReset () from /ovn/lib/libsqlite3.so.3 #3 0x2c7b55a8 in sqlite3_reset () from /ovn/lib/libsqlite3.so.3 #4 0x2c7b6888 in sqlite3Step () from /ovn/lib/libsqlite3.so.3 #5 0x2c7b6d54 in sqlite3_step () from /ovn/lib/libsqlite3.so.3 #6 0x2b3f91cc in SqlQuery::step(int) () from /ovn/lib/libplatform.so.1 #7 0x10189ea0 in printServiceConfig(void*, ArgumentArray*, unsigned char, char*, void**, char*) () #8 0x1018a3d4 in IsgShowCfgSvc () #9 0x2b8e1374 in OvnRcRunShowConfig () from /ovn/lib/libEngine.so.1 #10 0x101297c4 in IsgShowCfgMainConfig () #11 0x2b8e13f8 in OvnRcRunShowConfig () from /ovn/lib/libEngine.so.1 #12 0x10122b54 in IsgShowCfg () #13 0x2b8df200 in RcParseLine () from /ovn/lib/libEngine.so.1 #14 0x2b8da788 in RcFiniteStateMachine () from /ovn/lib/libEngine.so.1 #15 0x2b8d4298 in AllegroMainTask () from /ovn/lib/libEngine.so.1 #16 0x2b8d5b2c in c_main () from /ovn/lib/libEngine.so.1 #17 0x2b8e3af0 in app_main(int, char**) () from /ovn/lib/libEngine.so.1 #18 0x1004c198 in main () --- I need more debugging information. Perhaps: (1) Recompile libsqlite3.a from source code. Using -O0 (not -O2) and -g. (2) Rerun your program to crash (3) Send me the new stack trace that shows exactly which line the error occurs on (4) Also send the sqlite_source_id() for the specific version of SQLite you are using. On 8/3/16, ChingChang Hsiao <chs...@advaoptical.com> wrote: > Our sqlite version is "SQLite version 3.8.8.1". > Modify a configuration data while reading a big configuration DB(show > configuration). It goes to busyhandler and write is successful and > read configuration codes goes to core dump. Is there any idea why > going to core dump? Is something to do with mutex handling? Thanks. > > ChingChang > > int32 > DbHandle::registerBusyHook( sqlite3* db, dbCallback_data_t *cbData ) { > sqlite3_busy_handler( db, > , > (void*)cbData ); > return 0; > } > > (gdb) bt > #0 0x2ce4f4fc in sqlite3_step () from /ovn/lib/libsqlite3.so.3 > #1 0x2ba471cc in SqlQuery::step(int) () from > /ovn/lib/libplatform.so.1 > #2 0x10189e50 in printServiceConfig(void*, ArgumentArray*, unsigned > char, char*, void**, char*) () > #3 0x1018a384 in IsgShowCfgSvc () > #4 0x2bf2f3f8 in OvnRcRunShowConfig () from /ovn/lib/libEngine.so.1 > #5 0x10129774 in IsgShowCfgMainConfig () > #6 0x2bf2f3f8 in OvnRcRunShowConfig () from /ovn/lib/libEngine.so.1 > #7 0x10122b04 in IsgShowCfg () > #8 0x2bf2d200 in RcParseLine () from /ovn/lib/libEngine.so.1 > #9 0x2bf28788 in RcFiniteStateMachine () from /ovn/lib/libEngine.so.1 > #10 0x2bf22298 in AllegroMainTask () from /ovn/lib/libEngine.so.1 > #11 0x2bf23b2c in c_main () from /ovn/lib/libEngine.so.1 > #12 0x2bf31af0 in app_main(int, char**) () from > /ovn/lib/libEngine.so.1 > #13 0x1004c148 in main () > > ___ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > -- D. Richard Hipp d...@sqlite.org ___ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] core dump when writing the DB in the middle of the long read
Our sqlite version is "SQLite version 3.8.8.1". Modify a configuration data while reading a big configuration DB(show configuration). It goes to busyhandler and write is successful and read configuration codes goes to core dump. Is there any idea why going to core dump? Is something to do with mutex handling? Thanks. ChingChang int32 DbHandle::registerBusyHook( sqlite3* db, dbCallback_data_t *cbData ) { sqlite3_busy_handler( db, , (void*)cbData ); return 0; } (gdb) bt #0 0x2ce4f4fc in sqlite3_step () from /ovn/lib/libsqlite3.so.3 #1 0x2ba471cc in SqlQuery::step(int) () from /ovn/lib/libplatform.so.1 #2 0x10189e50 in printServiceConfig(void*, ArgumentArray*, unsigned char, char*, void**, char*) () #3 0x1018a384 in IsgShowCfgSvc () #4 0x2bf2f3f8 in OvnRcRunShowConfig () from /ovn/lib/libEngine.so.1 #5 0x10129774 in IsgShowCfgMainConfig () #6 0x2bf2f3f8 in OvnRcRunShowConfig () from /ovn/lib/libEngine.so.1 #7 0x10122b04 in IsgShowCfg () #8 0x2bf2d200 in RcParseLine () from /ovn/lib/libEngine.so.1 #9 0x2bf28788 in RcFiniteStateMachine () from /ovn/lib/libEngine.so.1 #10 0x2bf22298 in AllegroMainTask () from /ovn/lib/libEngine.so.1 #11 0x2bf23b2c in c_main () from /ovn/lib/libEngine.so.1 #12 0x2bf31af0 in app_main(int, char**) () from /ovn/lib/libEngine.so.1 #13 0x1004c148 in main () ___ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] get the data anyway no matter what the entry of the second table is existing or not
SELECT * FROM service_table AS a LEFT JOIN service_fib_table AS b ON a.service_no=b.service_no ; How about adding one more further conditional JOIN in one statement above. service_fib_table.fib_id=service_fib_port_table.fib_id It means there is a hierarchy service_table->service_fib_table->service_fib_port_table. -Original Message- From: sqlite-users-bounces at mailinglists.sqlite.org [mailto:sqlite-users-boun...@mailinglists.sqlite.org] On Behalf Of Richard Hipp Sent: Tuesday, September 22, 2015 4:35 PM To: General Discussion of SQLite Database Subject: Re: [sqlite] get the data anyway no matter what the entry of the second table is existing or not On 9/22/15, John McKown wrote: > On Tue, Sep 22, 2015 at 3:15 PM, ChingChang Hsiao < > ChingChang.Hsiao at overturenetworks.com> wrote: >> >> How can I write in one statement to get the service_table data no >> matter what the entry of service_fib_table is existing or not. >> > > SELECT * FROM service_table AS a > LEFT JOIN service_fib_table AS b > WHERE a.service_no = b.service_no > ; Close, but not quite right. The conditional needs to go inside an ON clause, not in the WHERE clause, since if it appears in the WHERE clause the b.service_no will be NULL and the test will fail for cases where service_fib_table is missing. SELECT * FROM service_table AS a LEFT JOIN service_fib_table AS b ON a.service_no=b.service_no ; -- D. Richard Hipp drh at sqlite.org ___ sqlite-users mailing list sqlite-users at mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users This email and attachments may contain privileged or confidential information intended only for the addressee(s) indicated. The sender does not waive any of its rights, privileges or protections respecting this information. If you are not the named addressee, an employee, or agent responsible for sending this message to the named addressee (or this message was received by mistake), you are not authorized to read, print, retain, copy or disseminate this message or any part of it. If received in error, please notify us immediately by e-mail, discard any paper copies and delete all electronic files of the email. Computer viruses can be transmitted via email. The recipient should check this email and any attachments for viruses. Email transmission cannot be guaranteed to be secured or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender accepts no liability for any damage caused by any transmitted viruses or errors or omissions in the contents of this message. Overture Networks, Inc. 637 Davis Drive, Morrisville, NC USA 27560 www.overturenetworks.com
[sqlite] get the data anyway no matter what the entry of the second table is existing or not
select * from service_table a,service_fib_table b where a.service_no=b.service_no; In this statement, the entry of service_fib_table must be existing to get the service_table and service_fib_table data. How can I write in one statement to get the service_table data no matter what the entry of service_fib_table is existing or not. ChingChang This email and attachments may contain privileged or confidential information intended only for the addressee(s) indicated. The sender does not waive any of its rights, privileges or protections respecting this information. If you are not the named addressee, an employee, or agent responsible for sending this message to the named addressee (or this message was received by mistake), you are not authorized to read, print, retain, copy or disseminate this message or any part of it. If received in error, please notify us immediately by e-mail, discard any paper copies and delete all electronic files of the email. Computer viruses can be transmitted via email. The recipient should check this email and any attachments for viruses. Email transmission cannot be guaranteed to be secured or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender accepts no liability for any damage caused by any transmitted viruses or errors or omissions in the contents of this message. Overture Networks, Inc. 637 Davis Drive, Morrisville, NC USA 27560 www.overturenetworks.com
[sqlite] delete the extra row from 2 similar tables with 2 key
I have 2 similar tables. If_idx and dest_addr_idx are the keys. I am trying to synchronize the rows. Is there one sql statement to delete the extra row or 2 statements to get the result for the extra if_idx, 69 and dest_addr_idx ,1 and then delete it from the table lldp_stats_tx_port_table_clear. delete from lldp_stats_tx_port_table_clear where if_idx not in (select if_idx from lldp_stats_tx_port_table); It is one statement for one key if_idx. How about use 2 keys if_idx and dest_addr_idx? - sqlite> .d lldp_stats_tx_port_table PRAGMA foreign_keys=OFF; BEGIN TRANSACTION; CREATE TABLE lldp_stats_tx_port_table ( if_idxINTEGER, dest_addr_idx INTEGER, frames_out_total INTEGER, lldpdu_len_errors INTEGER, UNIQUE (if_idx, dest_addr_idx) ON CONFLICT REPLACE); INSERT INTO "lldp_stats_tx_port_table" VALUES(28,1,74,0); INSERT INTO "lldp_stats_tx_port_table" VALUES(28,3,74,0); INSERT INTO "lldp_stats_tx_port_table" VALUES(28,2,74,0); INSERT INTO "lldp_stats_tx_port_table" VALUES(29,1,74,0); INSERT INTO "lldp_stats_tx_port_table" VALUES(29,3,74,0); INSERT INTO "lldp_stats_tx_port_table" VALUES(29,2,74,0); INSERT INTO "lldp_stats_tx_port_table" VALUES(69,3,0,0); INSERT INTO "lldp_stats_tx_port_table" VALUES(69,2,77,0); INSERT INTO "lldp_stats_tx_port_table" VALUES(83,1,74,0); INSERT INTO "lldp_stats_tx_port_table" VALUES(86,1,77,0); COMMIT; sqlite> .d lldp_stats_tx_port_table_clear PRAGMA foreign_keys=OFF; BEGIN TRANSACTION; CREATE TABLE lldp_stats_tx_port_table_clear( if_idx INT, dest_addr_idx INT, frames_out_total INT, lldpdu_len_errors INT ); INSERT INTO "lldp_stats_tx_port_table_clear" VALUES(28,1,42,0); INSERT INTO "lldp_stats_tx_port_table_clear" VALUES(28,3,42,0); INSERT INTO "lldp_stats_tx_port_table_clear" VALUES(28,2,42,0); INSERT INTO "lldp_stats_tx_port_table_clear" VALUES(29,1,42,0); INSERT INTO "lldp_stats_tx_port_table_clear" VALUES(29,3,42,0); INSERT INTO "lldp_stats_tx_port_table_clear" VALUES(29,2,42,0); INSERT INTO "lldp_stats_tx_port_table_clear" VALUES(69,3,0,0); INSERT INTO "lldp_stats_tx_port_table_clear" VALUES(69,2,45,0); INSERT INTO "lldp_stats_tx_port_table_clear" VALUES(83,1,42,0); INSERT INTO "lldp_stats_tx_port_table_clear" VALUES(86,1,46,0); INSERT INTO "lldp_stats_tx_port_table_clear" VALUES(69,1,0,0); COMMIT; This email and attachments may contain privileged or confidential information intended only for the addressee(s) indicated. The sender does not waive any of its rights, privileges or protections respecting this information. If you are not the named addressee, an employee, or agent responsible for sending this message to the named addressee (or this message was received by mistake), you are not authorized to read, print, retain, copy or disseminate this message or any part of it. If received in error, please notify us immediately by e-mail, discard any paper copies and delete all electronic files of the email. Computer viruses can be transmitted via email. The recipient should check this email and any attachments for viruses. Email transmission cannot be guaranteed to be secured or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender accepts no liability for any damage caused by any transmitted viruses or errors or omissions in the contents of this message. Overture Networks, Inc. 637 Davis Drive, Morrisville, NC USA 27560 www.overturenetworks.com ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] count from 2 tables
There are 2 related table above. There are service_no 1,2,3,5. Service 1,2,3 are type e-line, service 5 is type e-lan. Service 1,2,3 own 2 service_port(sp_no 1,2). Service 5 owns 3 service_port(sp_no 1,2,3). What is the count of services have more than 2 service_port(sp) and type is e-lan? The answer is 1. Could it be described as one sql statement? CREATE TABLE service_table ( service_nameTEXT, /* name of the service (unique) */ service_no INTEGER, /* internal service number, assigned by the system. */ service_typeTEXT, /* Type of Service. Should be one of the following: e-lan, e-line, e-tree, ip-forward The default should be e-line */ learning_enabled INTEGER, /* Learning Enabled 0=no 1=yes 1=default */ col_status TEXT, cfg_status TEXT); INSERT INTO "service_table" VALUES('e-line-1',1,'e-line',1,'','committed'); INSERT INTO "service_table" VALUES('test',2,'e-line',1,'','committed'); INSERT INTO "service_table" VALUES('uni1-evc1',3,'e-line',1,'','committed'); INSERT INTO "service_table" VALUES('zero-touch-test',5,'e-lan',1,'','committed'); CREATE TABLE service_port_table( sp_no INTEGER, /* Range 1 to 256 */ service_no INTEGER, /* The Service this service port belongs to */ sp_idx INTEGER, /* This is used to identify the classification rule: This should range from 1 to 1 */ if_idx INTEGER, /* Interface Index of the underlying interface */ INSERT INTO "service_port_table" VALUES(1,1,1,26); INSERT INTO "service_port_table" VALUES(2,1,2,43); INSERT INTO "service_port_table" VALUES(1,2,3,53); INSERT INTO "service_port_table" VALUES(2,2,4,26); INSERT INTO "service_port_table" VALUES(1,3,5,29); INSERT INTO "service_port_table" VALUES(2,3,6,54,); INSERT INTO "service_port_table" VALUES(1,5,20,12); INSERT INTO "service_port_table" VALUES(2,5,21,58); INSERT INTO "service_port_table" VALUES(3,5,22,27); This email and attachments may contain privileged or confidential information intended only for the addressee(s) indicated. The sender does not waive any of its rights, privileges or protections respecting this information. If you are not the named addressee, an employee, or agent responsible for sending this message to the named addressee (or this message was received by mistake), you are not authorized to read, print, retain, copy or disseminate this message or any part of it. If received in error, please notify us immediately by e-mail, discard any paper copies and delete all electronic files of the email. Computer viruses can be transmitted via email. The recipient should check this email and any attachments for viruses. Email transmission cannot be guaranteed to be secured or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender accepts no liability for any damage caused by any transmitted viruses or errors or omissions in the contents of this message. Overture Networks, Inc. 637 Davis Drive, Morrisville, NC USA 27560 www.overturenetworks.com ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] count from 2 tables
CREATE TABLE service_table ( service_nameTEXT, /* name of the service (unique) */ service_no INTEGER, /* internal service number, assigned by the system. */ service_typeTEXT, /* Type of Service. Should be one of the following: e-lan, e-line, e-tree, ip-forward The default should be e-line */ learning_enabled INTEGER, /* Learning Enabled 0=no 1=yes 1=default */ col_status TEXT, cfg_status TEXT); INSERT INTO "service_table" VALUES('e-line-1',1,'e-line',1,'','committed'); INSERT INTO "service_table" VALUES('test',2,'e-line',1,'','committed'); INSERT INTO "service_table" VALUES('uni1-evc1',3,'e-line',1,'','committed'); INSERT INTO "service_table" VALUES('zero-touch-test',5,'e-lan',1,'','committed'); CREATE TABLE service_port_table( sp_no INTEGER, /* Range 1 to 256 */ service_no INTEGER, /* The Service this service port belongs to */ sp_idx INTEGER, /* This is used to identify the classification rule: This should range from 1 to 1 */ if_idx INTEGER, /* Interface Index of the underlying interface */ INSERT INTO "service_port_table" VALUES(1,1,1,26); INSERT INTO "service_port_table" VALUES(2,1,2,43); INSERT INTO "service_port_table" VALUES(1,2,3,53); INSERT INTO "service_port_table" VALUES(2,2,4,26); INSERT INTO "service_port_table" VALUES(1,3,5,29); INSERT INTO "service_port_table" VALUES(2,3,6,54,); INSERT INTO "service_port_table" VALUES(1,5,20,12); INSERT INTO "service_port_table" VALUES(2,5,21,58); INSERT INTO "service_port_table" VALUES(3,5,22,27); There are 2 related table above. There are service_no 1,2,3,5. Service 1,2,3 are type e-line, service 5 is type e-lan. Service 1,2,3 own 2 service_port(sp_no 1,2). Service 5 owns 3 service_port(sp_no 1,2,3). What is the count of services have more than 2 service_port(sp) and type is e-lan? The answer is 1. Could it be described as one sql statement? Thanks ChingChang This email and attachments may contain privileged or confidential information intended only for the addressee(s) indicated. The sender does not waive any of its rights, privileges or protections respecting this information. If you are not the named addressee, an employee, or agent responsible for sending this message to the named addressee (or this message was received by mistake), you are not authorized to read, print, retain, copy or disseminate this message or any part of it. If received in error, please notify us immediately by e-mail, discard any paper copies and delete all electronic files of the email. Computer viruses can be transmitted via email. The recipient should check this email and any attachments for viruses. Email transmission cannot be guaranteed to be secured or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender accepts no liability for any damage caused by any transmitted viruses or errors or omissions in the contents of this message. Overture Networks, Inc. 637 Davis Drive, Morrisville, NC USA 27560 www.overturenetworks.com ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] count from 2 tables
CREATE TABLE service_table ( service_nameTEXT, /* name of the service (unique) */ service_no INTEGER, /* internal service number, assigned by the system. */ service_typeTEXT, /* Type of Service. Should be one of the following: e-lan, e-line, e-tree, ip-forward The default should be e-line */ learning_enabled INTEGER, /* Learning Enabled 0=no 1=yes 1=default */ col_status TEXT, cfg_status TEXT); INSERT INTO "service_table" VALUES('e-line-1',1,'e-line',1,'','committed'); INSERT INTO "service_table" VALUES('test',2,'e-line',1,'','committed'); INSERT INTO "service_table" VALUES('uni1-evc1',3,'e-line',1,'','committed'); INSERT INTO "service_table" VALUES('zero-touch-test',5,'e-lan',1,'','committed'); CREATE TABLE service_port_table( sp_no INTEGER, /* Range 1 to 256 */ service_no INTEGER, /* The Service this service port belongs to */ sp_idx INTEGER, /* This is used to identify the classification rule: This should range from 1 to 1 */ if_idx INTEGER, /* Interface Index of the underlying interface */ INSERT INTO "service_port_table" VALUES(1,1,1,26); INSERT INTO "service_port_table" VALUES(2,1,2,43); INSERT INTO "service_port_table" VALUES(1,2,3,53); INSERT INTO "service_port_table" VALUES(2,2,4,26); INSERT INTO "service_port_table" VALUES(1,3,5,29); INSERT INTO "service_port_table" VALUES(2,3,6,54,); INSERT INTO "service_port_table" VALUES(1,5,20,12); INSERT INTO "service_port_table" VALUES(2,5,21,58); INSERT INTO "service_port_table" VALUES(3,5,22,27); There are 2 related table above. There are service_no 1,2,3,5. Service 1,2,3 are type e-line, service 5 is type e-lan. Service 1,2,3 own 2 service_port(sp_no 1,2). Service 5 owns 3 service_port(sp_no 1,2,3). What is the count of services have more than 2 service_port(sp) and type is e-lan? The answer is 1. Could it be described as one sql statement? Thanks ChingChang This email and attachments may contain privileged or confidential information intended only for the addressee(s) indicated. The sender does not waive any of its rights, privileges or protections respecting this information. If you are not the named addressee, an employee, or agent responsible for sending this message to the named addressee (or this message was received by mistake), you are not authorized to read, print, retain, copy or disseminate this message or any part of it. If received in error, please notify us immediately by e-mail, discard any paper copies and delete all electronic files of the email. Computer viruses can be transmitted via email. The recipient should check this email and any attachments for viruses. Email transmission cannot be guaranteed to be secured or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender accepts no liability for any damage caused by any transmitted viruses or errors or omissions in the contents of this message. Overture Networks, Inc. 637 Davis Drive, Morrisville, NC USA 27560 www.overturenetworks.com ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] delete the extra row from 2 similar tables
I have 2 similar tables. If_idx is the key. I am trying to synchronize the rows. Is there one sql statement to delete the extra row or 2 statements to get the result for the extra if_idx, 29 and then delete it from the table lldp_stats_tx_port_table_clear. PRAGMA foreign_keys=OFF; BEGIN TRANSACTION; CREATE TABLE lldp_stats_tx_port_table ( if_idxINTEGER, dest_addr_idx INTEGER, frames_out_total INTEGER, lldpdu_len_errors INTEGER, UNIQUE (if_idx, dest_addr_idx) ON CONFLICT REPLACE); INSERT INTO "lldp_stats_tx_port_table" VALUES(58,1,2180,0); INSERT INTO "lldp_stats_tx_port_table" VALUES(53,1,2180,0); INSERT INTO "lldp_stats_tx_port_table" VALUES(43,1,2177,0); COMMIT; PRAGMA foreign_keys=OFF; BEGIN TRANSACTION; CREATE TABLE lldp_stats_tx_port_table_clear( if_idx INT, dest_addr_idx INT, frames_out_total INT, lldpdu_len_errors INT ); INSERT INTO "lldp_stats_tx_port_table_clear" VALUES(58,1,53,0); INSERT INTO "lldp_stats_tx_port_table_clear" VALUES(53,1,53,0); INSERT INTO "lldp_stats_tx_port_table_clear" VALUES(43,1,51,0); INSERT INTO "lldp_stats_tx_port_table_clear" VALUES(29,1,53,0); COMMIT; This email and attachments may contain privileged or confidential information intended only for the addressee(s) indicated. The sender does not waive any of its rights, privileges or protections respecting this information. If you are not the named addressee, an employee, or agent responsible for sending this message to the named addressee (or this message was received by mistake), you are not authorized to read, print, retain, copy or disseminate this message or any part of it. If received in error, please notify us immediately by e-mail, discard any paper copies and delete all electronic files of the email. Computer viruses can be transmitted via email. The recipient should check this email and any attachments for viruses. Email transmission cannot be guaranteed to be secured or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender accepts no liability for any damage caused by any transmitted viruses or errors or omissions in the contents of this message. Overture Networks, Inc. 637 Davis Drive, Morrisville, NC USA 27560 www.overturenetworks.com ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] core dump happened in sqlite3_step for 30 statements in BEGIN TRANSACTION executing every 10 Millisecond Take 3
I can't reply in my system, so I create the problem description again. It seems it's not the problem of sprintf. If it comes from sprintf array size, the core dump will be like this " in __stack_chk_fail () from /lib/libc.so.6". The code dump happened after 4 days' run in a test script, not immediately. The SQLITE statements seem to be ok. Could be a performance issue? ChingChang The source code is shown as below, char tempString[1024]; vector dbStatements; dbStatements.push_back( "BEGIN TRANSACTION;" ); for ( int x = 0; x < 10; x++ ) { sprintf( tempString, "update utilization_table set utilization=%5.2f,sample=%d where slot='0' and device='cavium' and resource='bus' and sample='%d';", ntohd(msg->bus_util[x]), x, x ); dbStatements.push_back( tempString ); sprintf( tempString, "update utilization_table set utilization=%5.2f,sample=%d where slot='0' and device='cavium' and resource='icache' and sample='%d';", 100.00-ntohd(msg->inst_hit_rate[x]), // Convert to misses x, x ); dbStatements.push_back( tempString ); sprintf( tempString, "update utilization_table set utilization=%5.2f,sample=%d where slot='0' and device='cavium' and resource='dcache' and sample='%d';", 100.00-ntohd(msg->data_hit_rate[x]), // Convert to misses x, x ); dbStatements.push_back( tempString ); } dbStatements.push_back( "COMMIT;" ); // populate the DB vector::iterator dbStatementsIter; SqlQuery oper_db(operDatabase, __FILE__, __LINE__); for ( dbStatementsIter = dbStatements.begin(); dbStatementsIter != dbStatements.end(); dbStatementsIter++ ) { oper_db.execw( *(dbStatementsIter) ); } dbStatements.clear(); The core dump is shown as below. #0 0x32e94b04 in raise () from /lib/libc.so.6 #1 0x32e962f4 in abort () from /lib/libc.so.6 #2 0x32e8c2a4 in __assert_fail () from /lib/libc.so.6 #3 0x32ae60cc in ?? () from /ovn/lib/libsqlite3.mgmt-crd.so #4 0x32b4c324 in ?? () from /ovn/lib/libsqlite3.mgmt-crd.so #5 0x32ba12c0 in ?? () from /ovn/lib/libsqlite3.mgmt-crd.so #6 0x32b7926c in sqlite3_step () from /ovn/lib/libsqlite3.mgmt-crd.so #7 0x32b7a2c4 in sqlite3_exec () from /ovn/lib/libsqlite3.mgmt-crd.so #8 0x329a9630 in SqlQuery::execw () from /ovn/lib/libPlatform.so #9 0x329a98e8 in SqlQuery::execw () from /ovn/lib/libPlatform.so #10 0x10010290 in NpuMessageHandler::processUtilReport (this=, msg=, nbytes=) at cavium_driver.cpp:1387 #11 0x10012808 in NpuMessageHandler::run (this=0x38be1008) at cavium_driver.cpp:954 #12 0x328a65b0 in Thread::start_thread () from /ovn/lib/libCommon.mgmt-crd.so #13 0x3278b5cc in ?? () from /lib/libpthread.so.0 #14 0x32f39b88 in clone () from /lib/libc.so.6 ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] core dump happened in sqlite3_step for 30 statements in BEGIN TRANSACTION executing every 10 Millisecond Take 2
I can't reply in my system, so I create the problem description again. I miss one source code line "char tempString[1024];"in the last email. The code dump happened after 4 days' run in a test script not immediately. The SQLITE statements seem to be ok. Could be a performance issue? ChingChang The source code is shown as below, char tempString[1024]; vector dbStatements; dbStatements.push_back( "BEGIN TRANSACTION;" ); for ( int x = 0; x < 10; x++ ) { sprintf( tempString, "update utilization_table set utilization=%5.2f,sample=%d where slot='0' and device='cavium' and resource='bus' and sample='%d';", ntohd(msg->bus_util[x]), x, x ); dbStatements.push_back( tempString ); sprintf( tempString, "update utilization_table set utilization=%5.2f,sample=%d where slot='0' and device='cavium' and resource='icache' and sample='%d';", 100.00-ntohd(msg->inst_hit_rate[x]), // Convert to misses x, x ); dbStatements.push_back( tempString ); sprintf( tempString, "update utilization_table set utilization=%5.2f,sample=%d where slot='0' and device='cavium' and resource='dcache' and sample='%d';", 100.00-ntohd(msg->data_hit_rate[x]), // Convert to misses x, x ); dbStatements.push_back( tempString ); } dbStatements.push_back( "COMMIT;" ); // populate the DB vector::iterator dbStatementsIter; SqlQuery oper_db(operDatabase, __FILE__, __LINE__); for ( dbStatementsIter = dbStatements.begin(); dbStatementsIter != dbStatements.end(); dbStatementsIter++ ) { oper_db.execw( *(dbStatementsIter) ); } dbStatements.clear(); The core dump is shown as below. #0 0x32e94b04 in raise () from /lib/libc.so.6 #1 0x32e962f4 in abort () from /lib/libc.so.6 #2 0x32e8c2a4 in __assert_fail () from /lib/libc.so.6 #3 0x32ae60cc in ?? () from /ovn/lib/libsqlite3.mgmt-crd.so #4 0x32b4c324 in ?? () from /ovn/lib/libsqlite3.mgmt-crd.so #5 0x32ba12c0 in ?? () from /ovn/lib/libsqlite3.mgmt-crd.so #6 0x32b7926c in sqlite3_step () from /ovn/lib/libsqlite3.mgmt-crd.so #7 0x32b7a2c4 in sqlite3_exec () from /ovn/lib/libsqlite3.mgmt-crd.so #8 0x329a9630 in SqlQuery::execw () from /ovn/lib/libPlatform.so #9 0x329a98e8 in SqlQuery::execw () from /ovn/lib/libPlatform.so #10 0x10010290 in NpuMessageHandler::processUtilReport (this=, msg=, nbytes=) at cavium_driver.cpp:1387 #11 0x10012808 in NpuMessageHandler::run (this=0x38be1008) at cavium_driver.cpp:954 #12 0x328a65b0 in Thread::start_thread () from /ovn/lib/libCommon.mgmt-crd.so #13 0x3278b5cc in ?? () from /lib/libpthread.so.0 #14 0x32f39b88 in clone () from /lib/libc.so.6 ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] FW: core dump happened in sqlite3_step for 30 statements in BEGIN TRANSACTION executing every 10 Millisecond Take 2
I can't reply in my system, so I create the problem description again. I miss one source code line "char tempString[1024];"in the last email. The code dump happened after 4 days' run in a test script not immediately. The SQLITE statements seem to be ok. Could be a performance issue? ChingChang The source code is shown as below, char tempString[1024]; vector dbStatements; dbStatements.push_back( "BEGIN TRANSACTION;" ); for ( int x = 0; x < 10; x++ ) { sprintf( tempString, "update utilization_table set utilization=%5.2f,sample=%d where slot='0' and device='cavium' and resource='bus' and sample='%d';", ntohd(msg->bus_util[x]), x, x ); dbStatements.push_back( tempString ); sprintf( tempString, "update utilization_table set utilization=%5.2f,sample=%d where slot='0' and device='cavium' and resource='icache' and sample='%d';", 100.00-ntohd(msg->inst_hit_rate[x]), // Convert to misses x, x ); dbStatements.push_back( tempString ); sprintf( tempString, "update utilization_table set utilization=%5.2f,sample=%d where slot='0' and device='cavium' and resource='dcache' and sample='%d';", 100.00-ntohd(msg->data_hit_rate[x]), // Convert to misses x, x ); dbStatements.push_back( tempString ); } dbStatements.push_back( "COMMIT;" ); // populate the DB vector::iterator dbStatementsIter; SqlQuery oper_db(operDatabase, __FILE__, __LINE__); for ( dbStatementsIter = dbStatements.begin(); dbStatementsIter != dbStatements.end(); dbStatementsIter++ ) { oper_db.execw( *(dbStatementsIter) ); } dbStatements.clear(); The core dump is shown as below. #0 0x32e94b04 in raise () from /lib/libc.so.6 #1 0x32e962f4 in abort () from /lib/libc.so.6 #2 0x32e8c2a4 in __assert_fail () from /lib/libc.so.6 #3 0x32ae60cc in ?? () from /ovn/lib/libsqlite3.mgmt-crd.so #4 0x32b4c324 in ?? () from /ovn/lib/libsqlite3.mgmt-crd.so #5 0x32ba12c0 in ?? () from /ovn/lib/libsqlite3.mgmt-crd.so #6 0x32b7926c in sqlite3_step () from /ovn/lib/libsqlite3.mgmt-crd.so #7 0x32b7a2c4 in sqlite3_exec () from /ovn/lib/libsqlite3.mgmt-crd.so #8 0x329a9630 in SqlQuery::execw () from /ovn/lib/libPlatform.so #9 0x329a98e8 in SqlQuery::execw () from /ovn/lib/libPlatform.so #10 0x10010290 in NpuMessageHandler::processUtilReport (this=, msg=, nbytes=) at cavium_driver.cpp:1387 #11 0x10012808 in NpuMessageHandler::run (this=0x38be1008) at cavium_driver.cpp:954 #12 0x328a65b0 in Thread::start_thread () from /ovn/lib/libCommon.mgmt-crd.so #13 0x3278b5cc in ?? () from /lib/libpthread.so.0 #14 0x32f39b88 in clone () from /lib/libc.so.6 ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] core dump happened in sqlite3_step for 30 statements in BEGIN TRANSACTION executing every 10 Millisecond
Do you know why it goes to core dump? ChingChang The source code is shown as below, vector dbStatements; dbStatements.push_back( "BEGIN TRANSACTION;" ); for ( int x = 0; x < 10; x++ ) { sprintf( tempString, "update utilization_table set utilization=%5.2f,sample=%d where slot='0' and device='cavium' and resource='bus' and sample='%d';", ntohd(msg->bus_util[x]), x, x ); dbStatements.push_back( tempString ); sprintf( tempString, "update utilization_table set utilization=%5.2f,sample=%d where slot='0' and device='cavium' and resource='icache' and sample='%d';", 100.00-ntohd(msg->inst_hit_rate[x]), // Convert to misses x, x ); dbStatements.push_back( tempString ); sprintf( tempString, "update utilization_table set utilization=%5.2f,sample=%d where slot='0' and device='cavium' and resource='dcache' and sample='%d';", 100.00-ntohd(msg->data_hit_rate[x]), // Convert to misses x, x ); dbStatements.push_back( tempString ); } dbStatements.push_back( "COMMIT;" ); // populate the DB vector::iterator dbStatementsIter; SqlQuery oper_db(operDatabase, __FILE__, __LINE__); for ( dbStatementsIter = dbStatements.begin(); dbStatementsIter != dbStatements.end(); dbStatementsIter++ ) { oper_db.execw( *(dbStatementsIter) ); } dbStatements.clear(); The core dump is shown as below. #0 0x32e94b04 in raise () from /lib/libc.so.6 #1 0x32e962f4 in abort () from /lib/libc.so.6 #2 0x32e8c2a4 in __assert_fail () from /lib/libc.so.6 #3 0x32ae60cc in ?? () from /ovn/lib/libsqlite3.mgmt-crd.so #4 0x32b4c324 in ?? () from /ovn/lib/libsqlite3.mgmt-crd.so #5 0x32ba12c0 in ?? () from /ovn/lib/libsqlite3.mgmt-crd.so #6 0x32b7926c in sqlite3_step () from /ovn/lib/libsqlite3.mgmt-crd.so #7 0x32b7a2c4 in sqlite3_exec () from /ovn/lib/libsqlite3.mgmt-crd.so #8 0x329a9630 in SqlQuery::execw () from /ovn/lib/libPlatform.so #9 0x329a98e8 in SqlQuery::execw () from /ovn/lib/libPlatform.so #10 0x10010290 in NpuMessageHandler::processUtilReport (this=, msg=, nbytes=) at cavium_driver.cpp:1387 #11 0x10012808 in NpuMessageHandler::run (this=0x38be1008) at cavium_driver.cpp:954 #12 0x328a65b0 in Thread::start_thread () from /ovn/lib/libCommon.mgmt-crd.so #13 0x3278b5cc in ?? () from /lib/libpthread.so.0 #14 0x32f39b88 in clone () from /lib/libc.so.6 ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] Order by creating function is not sorting for input order and alphabet
The purpose of function antok is that solve the problem of "order by cli_id". Function antok converts, X86-1 -> x186-01 X86-2 -> x186-02 X86-10 -> x186-110 X86-111 -> x186-2111 X86- -> x186-3 1.1/12-ds3 -> 01.01/112-ds03 Examples, Input cli_id x86-2, x86-10, x86-1 Order by cli_id X86-1 X86-10 X86-2 Order by antok(cli_id) X86-2 X86-1 X86-10 Antok solves the problem of x86-1,x86-10 sorting, but it didn't sort x86-2, x86-1(input order). My solution is, order by antok(cli_id) asc,cli_id asc X86-1 X86-2 X86-10 But It solves the same category, there are still problems for alphabet shown as below. 0.1 0.2 0.3 0.4 0.5 x86-1 x86-2 chdlc-1 chdlc-2 chdlc-3 x86-10 It should be, 0.1 0.2 0.3 0.4 0.5 chdlc-1 chdlc-2 chdlc-3 x86-1 x86-2 x86-10 Do you know why x86-1,x86-2 jump ahead chdlc-1 when I use "order by antok(cli_id)" or "order by antok(cli_id) asc,cli_id asc"? ChingChang Here are the source code shown as below. int32 DbHandle::registerOvnFuncs( sqlite3* db ) { // Add a alpha numeric token generator sqlite3_create_function(db, "antok", 1, SQLITE_UTF8, NULL, , NULL, NULL); return 0; } static void dbAnTokenFunc( sqlite3_context *context, int argc, sqlite3_value **argv ) { assert( argc==1 ); switch( sqlite3_value_type(argv[0]) ){ case SQLITE_INTEGER: sqlite3_result_int64( context, sqlite3_value_int64(argv[0]) ); break; case SQLITE_NULL: sqlite3_result_null( context ); break; case SQLITE_TEXT: default: SqlSortHelper sqlSortHelper; string token; token = sqlSortHelper.GetAlphaNumericOrderToken( (char*)sqlite3_value_text(argv[0]) ); sqlite3_result_text( context, token.c_str(), token.length(), NULL ); break; } } #define POTENTIAL_MATCHES 1 string SqlSortHelper::GetAlphaNumericOrderToken( string input ) { regex_t re; regmatch_t pmatch[POTENTIAL_MATCHES]; string token; uint32 pos = 0; char digits[10] = "012345678"; memset( pmatch, -1, sizeof(pmatch) ); regcomp( , "[0-9]+", REG_EXTENDED); while (pos < input.length()) { regexec( , input.c_str()+pos, 1, pmatch, 0); if ( pmatch[0].rm_so != -1 ) { token.append( (input.c_str() + pos), pmatch[0].rm_so); token.push_back( digits[((pmatch[0].rm_eo-pmatch[0].rm_so)-1)] ); token.append( (input.c_str() + pos + pmatch[0].rm_so), pmatch[0].rm_eo - pmatch[0].rm_so ); pos = pos + pmatch[0].rm_eo; } else { if (pos == 0) { regfree( ); return input; } else break; } } if (pos < input.length()) token.append( (input.c_str() + pos), input.length()-pos ); regfree( ); return token; } ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] two threads in differnet DB handler in the same process accesssing the same DB will cause mutex assert_fail in 3.7.5
Please neglect the previous email. Two threads are in the different DB handler(FD). I have sent the core dump in the previous email. And I found that one thread receives an event and access DB at the same time with another thread accesses the same DB. It happens in the heavy load for DB access. Is there a way to prevent this core dump? ChingChang Version is 3.7.5 journal mode = DELETE SELECT sqlite_source_id(); 2011-01-28 17:03:50 ed759d5a9edb3bba5f48f243df47be29e3fe8cd7 OTHER_FLAGS=-DSQLITE_THREADSAFE=2 -DSQLITE_THREAD_OVERRIDE_LOCK=-1 -DSQLITE_DEBUG=1 CFLAGS += -O0 -w $(OTHER_FLAGS) in Makefile ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] two threads in the same process accesssing the same DB will cause mutex assert_fail in 3.7.5
I have sent the core dump in the previous email. And I found that one thread receives an event and access DB at the same time with another thread accesses the same DB. It happens in the heavy load for DB access. Is there a way to prevent this core dump? ChingChang Version is 3.7.5 journal mode = DELETE SELECT sqlite_source_id(); 2011-01-28 17:03:50 ed759d5a9edb3bba5f48f243df47be29e3fe8cd7 OTHER_FLAGS=-DSQLITE_THREADSAFE=2 -DSQLITE_THREAD_OVERRIDE_LOCK=-1 -DSQLITE_DEBUG=1 CFLAGS += -O0 -w $(OTHER_FLAGS) in Makefile ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] FW: mutex assert_fail in sqlite3BtreeHoldsMutex in a heavily load DB access in 3.7.5 but not in 3.6.22
There is a problem for reply in the web. So I resend again. Please neglect the previous one. It's 3.7.5. Journal mode is delete not WAL. A script was running for a heavy load DB access. As you can see the sql statement "select * from service_table where service_no = '13';" in the log. There is no rows for service_no 13 or 7 in service_table when it is accessed. The logic is check the entry is there or not, if not then insert it. Could service_table be locked by previously writing(service_no 12 or 6)? ChingChang Version is 3.7.5 journal mode = DELETE SELECT sqlite_source_id(); 2011-01-28 17:03:50 ed759d5a9edb3bba5f48f243df47be29e3fe8cd7 OTHER_FLAGS=-DSQLITE_THREADSAFE=2 -DSQLITE_THREAD_OVERRIDE_LOCK=-1 -DSQLITE_DEBUG=1 CFLAGS += -O0 -w $(OTHER_FLAGS) in Makefile SQLITE_PRIVATE int sqlite3BtreeHoldsMutex(Btree *p){ assert( p->sharable==0 || p->locked==0 || p->wantToLock>0 ); assert( p->sharable==0 || p->locked==0 || p->db==p->pBt->db ); assert( p->sharable==0 || p->locked==0 || sqlite3_mutex_held(p->pBt->mutex) ); assert( p->sharable==0 || p->locked==0 || sqlite3_mutex_held(p->db->mutex) ); return (p->sharable==0 || p->locked); } (gdb) bt #0 0x369d5b04 in raise () from /lib/libc.so.6 #1 0x369d72f4 in abort () from /lib/libc.so.6 #2 0x369cd2a4 in __assert_fail () from /lib/libc.so.6 #3 0x364ceb24 in sqlite3BtreeHoldsMutex (p=0x117b94f0) at sqlite3.c:45280 #4 0x36544a14 in sqlite3Prepare (db=0x11aabd58, zSql=0x7e64a80c "select * from service_table where service_no = '13';", nBytes=-1, saveSqlFlag=0, pReprepare=0x0, ppStmt=0x7e64a374, pzTail=0x7e64a378) at sqlite3.c:87749 #5 0x365450d8 in sqlite3LockAndPrepare (db=0x11aabd58, zSql=0x7e64a80c "select * from service_table where service_no = '13';", nBytes=-1, saveSqlFlag=0, pOld=0x0, ppStmt=0x7e64a374, pzTail=0x7e64a378) at sqlite3.c:87878 #6 0x36545404 in sqlite3_prepare (db=0x11aabd58, zSql=0x7e64a80c "select * from service_table where service_no = '13';", nBytes=-1, ppStmt=0x7e64a374, pzTail=0x7e64a378) at sqlite3.c:87941 #7 0x3653e87c in sqlite3_exec (db=0x11aabd58, zSql=0x7e64a80c "select * from service_table where service_no = '13';", xCallback=0x36551600 , pArg=0x7e64a3e8, pzErrMsg=0x7e64a4f4) at sqlite3.c:84507 #8 0x36551ab4 in sqlite3_get_table (db=0x11aabd58, zSql=0x7e64a80c "select * from service_table where service_no = '13';", pazResult=0x7e64a5f8, pnRow=0x7e64a5fc, pnColumn=0x7e64a600, pzErrMsg=0x7e64a4f4) at sqlite3.c:92613 #9 0x36377594 in SqlQuery::exec (this=0x36af9f44, sql_stmt=0x7e64a80c "select * from service_table where service_no = '13';", context=, linenum=292215768, warnings=true) at SqlQuery.cpp:229 #10 0x36377ec0 in SqlQuery::exec (this=0x0, sql_stmt=0x1ede , warnings=32) at SqlQuery.cpp:255 #11 0x1004869c in IsgServiceType (theTaskDataPtr=, theArgArrayPtr=, theVariableNamePtr=0x101ff180 "ip-forward", theOutputStringPtr=0x1031b440 "", theUserCookiePtrPtr=) at IsgService.cc:711 #12 0x101c1bcc in RcParseLine (theConnectionPtr=0x11681900) at ./RomCLI/Sources/RcParse.c:606 #13 0x101be784 in RcFiniteStateMachine (theConnectionPtr=0x11681900) at ./RomCLI/Sources/RcCmdLin.c:913 #14 0x101c5c44 in HandleConnectionTask (theConnectionPtr=) at ./Engine/Sources/AsMain.c:1861 #15 AllegroMainTask (theTaskDataPtr=0x116805d0, theHttpTasks=, theTcpTasks=0x7e64eb64) at ./Engine/Sources/AsMain.c:1483 #16 0x101851e0 in instantiate_task () at ./Interfaces/LinuxUnix/SingleTask/RpTask.c:253 #17 c_main (argc=, argv=) at ./Interfaces/LinuxUnix/SingleTask/RpTask.c:105 #18 0x10184070 in app_main (argc=1, argv=0x7e653ca4) at ./Interfaces/LinuxUnix/SingleTask/RpStart.cpp:297 #19 0x1000d2d4 in main (argc=1, argv=0x7e653ca4) at /mnt/local/cch/bugfix_test_11_01_02232011/isg6000/MaestrOS/mgmt-crd/linux Program terminated with signal 6, Aborted. #0 0x31695b04 in raise () from /lib/libc.so.6 (gdb) bt #0 0x31695b04 in raise () from /lib/libc.so.6 #1 0x316972f4 in abort () from /lib/libc.so.6 #2 0x3168d2a4 in __assert_fail () from /lib/libc.so.6 #3 0x3116e404 in sqlite3BtreeHoldsMutex (p=0x117af8d0) at sqlite3.c:45280 #4 0x311ff2f0 in sqlite3Prepare (db=0x3123b04c, zSql=0x797c298c "select * from service_table where service_no = '7';", nBytes=-1, saveSqlFlag=0, pReprepare=, ppStmt=0x797c24e4, pzTail=0x797c24e8) at sqlite3.c:87749 #5 0x311ffd44 in sqlite3LockAndPrepare (db=0x11d354a8, zSql=0x797c298c "select * from service_table where service_no = '7';", nBytes=-1, saveSqlFlag=0, pOld=0x0, ppStmt=0x797c24e4, pzTail=0x797c24e8) at sqlite3.c:87878 #6 0x31200440 in sqlite3_prepare (db=0x0, zSql=0xefc , nBytes=6, ppStmt=0xffc0, pzTail=0xf104) at sqlite3.c:87941 #7 0x31202264 in sqlite3_exec (db=0x11d354a8, zSql=0x797c298c "select * from service_table where service_no = '7';", xCallback=0x31189f2c ,
[sqlite] mutex assert_fail in sqlite3BtreeHoldsMutex in a heavily load DB access in 3.5.7 but not in 3.6.22
A script was running for a heavy load DB access. As you can see the sql statement "select * from service_table where service_no = '13';" in the log. There is no rows for service_no 13 or 7 in service_table when it is accessed. The logic is check the entry is there or not, if not then insert it. Could service_table be locked by previously writing(service_no 12 or 6)? ChingChang Version is 3.5.7 journal mode = DELETE SELECT sqlite_source_id(); 2011-01-28 17:03:50 ed759d5a9edb3bba5f48f243df47be29e3fe8cd7 OTHER_FLAGS=-DSQLITE_THREADSAFE=2 -DSQLITE_THREAD_OVERRIDE_LOCK=-1 -DSQLITE_DEBUG=1 CFLAGS += -O0 -w $(OTHER_FLAGS) in Makefile SQLITE_PRIVATE int sqlite3BtreeHoldsMutex(Btree *p){ assert( p->sharable==0 || p->locked==0 || p->wantToLock>0 ); assert( p->sharable==0 || p->locked==0 || p->db==p->pBt->db ); assert( p->sharable==0 || p->locked==0 || sqlite3_mutex_held(p->pBt->mutex) ); assert( p->sharable==0 || p->locked==0 || sqlite3_mutex_held(p->db->mutex) ); return (p->sharable==0 || p->locked); } (gdb) bt #0 0x369d5b04 in raise () from /lib/libc.so.6 #1 0x369d72f4 in abort () from /lib/libc.so.6 #2 0x369cd2a4 in __assert_fail () from /lib/libc.so.6 #3 0x364ceb24 in sqlite3BtreeHoldsMutex (p=0x117b94f0) at sqlite3.c:45280 #4 0x36544a14 in sqlite3Prepare (db=0x11aabd58, zSql=0x7e64a80c "select * from service_table where service_no = '13';", nBytes=-1, saveSqlFlag=0, pReprepare=0x0, ppStmt=0x7e64a374, pzTail=0x7e64a378) at sqlite3.c:87749 #5 0x365450d8 in sqlite3LockAndPrepare (db=0x11aabd58, zSql=0x7e64a80c "select * from service_table where service_no = '13';", nBytes=-1, saveSqlFlag=0, pOld=0x0, ppStmt=0x7e64a374, pzTail=0x7e64a378) at sqlite3.c:87878 #6 0x36545404 in sqlite3_prepare (db=0x11aabd58, zSql=0x7e64a80c "select * from service_table where service_no = '13';", nBytes=-1, ppStmt=0x7e64a374, pzTail=0x7e64a378) at sqlite3.c:87941 #7 0x3653e87c in sqlite3_exec (db=0x11aabd58, zSql=0x7e64a80c "select * from service_table where service_no = '13';", xCallback=0x36551600 , pArg=0x7e64a3e8, pzErrMsg=0x7e64a4f4) at sqlite3.c:84507 #8 0x36551ab4 in sqlite3_get_table (db=0x11aabd58, zSql=0x7e64a80c "select * from service_table where service_no = '13';", pazResult=0x7e64a5f8, pnRow=0x7e64a5fc, pnColumn=0x7e64a600, pzErrMsg=0x7e64a4f4) at sqlite3.c:92613 #9 0x36377594 in SqlQuery::exec (this=0x36af9f44, sql_stmt=0x7e64a80c "select * from service_table where service_no = '13';", context=, linenum=292215768, warnings=true) at SqlQuery.cpp:229 #10 0x36377ec0 in SqlQuery::exec (this=0x0, sql_stmt=0x1ede , warnings=32) at SqlQuery.cpp:255 #11 0x1004869c in IsgServiceType (theTaskDataPtr=, theArgArrayPtr=, theVariableNamePtr=0x101ff180 "ip-forward", theOutputStringPtr=0x1031b440 "", theUserCookiePtrPtr=) at IsgService.cc:711 #12 0x101c1bcc in RcParseLine (theConnectionPtr=0x11681900) at ./RomCLI/Sources/RcParse.c:606 #13 0x101be784 in RcFiniteStateMachine (theConnectionPtr=0x11681900) at ./RomCLI/Sources/RcCmdLin.c:913 #14 0x101c5c44 in HandleConnectionTask (theConnectionPtr=) at ./Engine/Sources/AsMain.c:1861 #15 AllegroMainTask (theTaskDataPtr=0x116805d0, theHttpTasks=, theTcpTasks=0x7e64eb64) at ./Engine/Sources/AsMain.c:1483 #16 0x101851e0 in instantiate_task () at ./Interfaces/LinuxUnix/SingleTask/RpTask.c:253 #17 c_main (argc=, argv=) at ./Interfaces/LinuxUnix/SingleTask/RpTask.c:105 #18 0x10184070 in app_main (argc=1, argv=0x7e653ca4) at ./Interfaces/LinuxUnix/SingleTask/RpStart.cpp:297 #19 0x1000d2d4 in main (argc=1, argv=0x7e653ca4) at /mnt/local/cch/bugfix_test_11_01_02232011/isg6000/MaestrOS/mgmt-crd/linux Program terminated with signal 6, Aborted. #0 0x31695b04 in raise () from /lib/libc.so.6 (gdb) bt #0 0x31695b04 in raise () from /lib/libc.so.6 #1 0x316972f4 in abort () from /lib/libc.so.6 #2 0x3168d2a4 in __assert_fail () from /lib/libc.so.6 #3 0x3116e404 in sqlite3BtreeHoldsMutex (p=0x117af8d0) at sqlite3.c:45280 #4 0x311ff2f0 in sqlite3Prepare (db=0x3123b04c, zSql=0x797c298c "select * from service_table where service_no = '7';", nBytes=-1, saveSqlFlag=0, pReprepare=, ppStmt=0x797c24e4, pzTail=0x797c24e8) at sqlite3.c:87749 #5 0x311ffd44 in sqlite3LockAndPrepare (db=0x11d354a8, zSql=0x797c298c "select * from service_table where service_no = '7';", nBytes=-1, saveSqlFlag=0, pOld=0x0, ppStmt=0x797c24e4, pzTail=0x797c24e8) at sqlite3.c:87878 #6 0x31200440 in sqlite3_prepare (db=0x0, zSql=0xefc , nBytes=6, ppStmt=0xffc0, pzTail=0xf104) at sqlite3.c:87941 #7 0x31202264 in sqlite3_exec (db=0x11d354a8, zSql=0x797c298c "select * from service_table where service_no = '7';", xCallback=0x31189f2c , pArg=0x797c2550, pzErrMsg=0x797c2674) at sqlite3.c:84507 #8 0x3120276c in sqlite3_get_table (db=0x11d354a8, zSql=0x797c298c "select * from
[sqlite] BEGIN DEFERRED TRANSACTION causes core dump in a heavily periodic load with BEGIN EXCLUSIVE/IMMEDIATE TRANSACTION in version 3.7.5
I believe it is a bug in 3.7.5. It didn't happen in 3.6.22. It causes core dump when using "BEGIN DEFERRED TRANSACTION" in one of our application to access DB periodically(every 1 second) . There are other applications access the same DB periodically but using "BEGIN EXCLUSIVE/IMMEDIATE TRANSACTION". Only the application with "BEGIN DEFERRED TRANSACTION" went to core dump. It seems that it doesn't get the lock for some reasons and fails in assert. After changing from "BEGIN DEFERRED TRANSACTION" to "BEGIN EXCLUSIVE TRANSACTION" in this application, the problem is gone. The core dump report is shown as below. ChingChang (gdb) bt #0 0x3370bb04 in raise () from /lib/libc.so.6 #1 0x3370d2f4 in abort () from /lib/libc.so.6 #2 0x337032a4 in __assert_fail () from /lib/libc.so.6 #3 0x100dc940 in btreeInvokeBusyHandler (pArg=0x102b3b50) at sqlite3.c:47153 #4 0x1013f1dc in sqlite3VdbeHalt (p=0x103ae298) at sqlite3.c:38543 #5 0x1018fda8 in sqlite3VdbeExec (p=) at sqlite3.c:63340 #6 sqlite3Step (p=0x103ae298) at sqlite3.c:59036 #7 0x101987e8 in sqlite3_step (pStmt=0x103ae298) at sqlite3.c:59101 #8 0x1016cb7c in sqlite3_exec (db=0x10856e18, zSql=0x106b3aa4 "COMMIT;", xCallback=0, pArg=0x0, pzErrMsg=0x388a87c0) at sqlite3.c:84523 #9 0x1003f744 in SqlQuery::execw (this=0x388a8844, sql_stmt=0x106b3aa4 "COMMIT;", context=0x101b91b8 "SlotUtilEvent.cpp", linenum=69, warnings=) at SqlQuery.cpp:281 #10 0x10089db8 in SlotUtilEvent::run (this=0x10a81e94) at SlotUtilEvent.cpp:94 #11 0x10003f40 in HwMonListener::run (this=0x106b28a8) at /mnt/local/cch/bugfix_test_11_01_02232011/isg6000/isg6k/mgmt-crd/linuxapps/hwmon/hwmon.cpp:1993 #12 0x10025c8c in Thread::start_thread (arg=0x106b28a8) at thread.cpp:199 #13 0x334265cc in ?? () from /lib/libpthread.so.0 #14 0x337b0b88 in clone () from /lib/libc.so.6 Backtrace stopped: previous frame inner to this frame (corrupt stack?) ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] mutex assert_fail in btreeInvokeBusyHandler occasionally in a periodic DB update in 3.5.7, It's ok in 3.6.22(-DSQLITE_THREADSAFE=1)
Please neglect the previous 2 emails. Sorry for the inconvenience. Version is 3.5.7 journal mode = DELETE SELECT sqlite_source_id(); 2011-01-28 17:03:50 ed759d5a9edb3bba5f48f243df47be29e3fe8cd7 -DSQLITE_THREADSAFE=1 in Makefile static int btreeInvokeBusyHandler(void *pArg){ BtShared *pBt = (BtShared*)pArg; assert( pBt->db ); assert( sqlite3_mutex_held(pBt->db->mutex) ); return sqlite3InvokeBusyHandler(>db->busyHandler); } There is a periodic(1 second) DB commit update. It will receive signal 6 assertion fail occasionally. Assert_fail is for sqlite3_mutex_held. Is it something to do with the flag SQLITE_THREADSAFE. Is there anyone could have some ideas for the possible assert_fail reason? It never happened in version 3.6.22. The journal mode is DELETE too. What could be the changes in 3.7.5 cause this problem? (gdb) bt #0 0x3370bb04 in raise () from /lib/libc.so.6 #1 0x3370d2f4 in abort () from /lib/libc.so.6 #2 0x337032a4 in __assert_fail () from /lib/libc.so.6 #3 0x100dc940 in btreeInvokeBusyHandler (pArg=0x102b3b50) at sqlite3.c:47153 #4 0x1013f1dc in sqlite3VdbeHalt (p=0x103ae298) at sqlite3.c:38543 #5 0x1018fda8 in sqlite3VdbeExec (p=) at sqlite3.c:63340 #6 sqlite3Step (p=0x103ae298) at sqlite3.c:59036 #7 0x101987e8 in sqlite3_step (pStmt=0x103ae298) at sqlite3.c:59101 #8 0x1016cb7c in sqlite3_exec (db=0x10856e18, zSql=0x106b3aa4 "COMMIT;", xCallback=0, pArg=0x0, pzErrMsg=0x388a87c0) at sqlite3.c:84523 #9 0x1003f744 in SqlQuery::execw (this=0x388a8844, sql_stmt=0x106b3aa4 "COMMIT;", context=0x101b91b8 "SlotUtilEvent.cpp", linenum=69, warnings=) at SqlQuery.cpp:281 #10 0x10089db8 in SlotUtilEvent::run (this=0x10a81e94) at SlotUtilEvent.cpp:94 #11 0x10003f40 in HwMonListener::run (this=0x106b28a8) at /mnt/local/cch/bugfix_test_11_01_02232011/isg6000/isg6k/mgmt-crd/linuxapps/hwmon/hwmon.cpp:1993 #12 0x10025c8c in Thread::start_thread (arg=0x106b28a8) at thread.cpp:199 #13 0x334265cc in ?? () from /lib/libpthread.so.0 #14 0x337b0b88 in clone () from /lib/libc.so.6 Backtrace stopped: previous frame inner to this frame (corrupt stack?) ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] assert_fail in btreeInvokeBusyHandler occasionally in a perodic DB update in 3.5.7, It's ok in 3.6.22(-DSQLITE_THREADSAFE=1)
Version is 3.5.7 journal mode = DELETE SELECT sqlite_source_id(); 2011-01-28 17:03:50 ed759d5a9edb3bba5f48f243df47be29e3fe8cd7 -DSQLITE_THREADSAFE=1 in Makefile static int btreeInvokeBusyHandler(void *pArg){ BtShared *pBt = (BtShared*)pArg; assert( pBt->db ); assert( sqlite3_mutex_held(pBt->db->mutex) ); return sqlite3InvokeBusyHandler(>db->busyHandler); } There is a periodic(1 second) DB commit update. It will receive signal 6 assertion fail occasionally. pBt->db is probably not the case. sqlite3_mutex_held could be a problem? Is there anyone could have some ideas for the possible assert_fail reason? It never happened in version 3.6.22. The journal mode is DELETE too. What could be the changes in 3.7.5 cause this problem? (gdb) bt #0 0x3370bb04 in raise () from /lib/libc.so.6 #1 0x3370d2f4 in abort () from /lib/libc.so.6 #2 0x337032a4 in __assert_fail () from /lib/libc.so.6 #3 0x100dc940 in btreeInvokeBusyHandler (pArg=0x102b3b50) at sqlite3.c:47153 #4 0x1013f1dc in sqlite3VdbeHalt (p=0x103ae298) at sqlite3.c:38543 #5 0x1018fda8 in sqlite3VdbeExec (p=) at sqlite3.c:63340 #6 sqlite3Step (p=0x103ae298) at sqlite3.c:59036 #7 0x101987e8 in sqlite3_step (pStmt=0x103ae298) at sqlite3.c:59101 #8 0x1016cb7c in sqlite3_exec (db=0x10856e18, zSql=0x106b3aa4 "COMMIT;", xCallback=0, pArg=0x0, pzErrMsg=0x388a87c0) at sqlite3.c:84523 #9 0x1003f744 in SqlQuery::execw (this=0x388a8844, sql_stmt=0x106b3aa4 "COMMIT;", context=0x101b91b8 "SlotUtilEvent.cpp", linenum=69, warnings=) at SqlQuery.cpp:281 #10 0x10089db8 in SlotUtilEvent::run (this=0x10a81e94) at SlotUtilEvent.cpp:94 #11 0x10003f40 in HwMonListener::run (this=0x106b28a8) at /mnt/local/cch/bugfix_test_11_01_02232011/isg6000/isg6k/mgmt-crd/linuxapps/hwmon/hwmon.cpp:1993 #12 0x10025c8c in Thread::start_thread (arg=0x106b28a8) at thread.cpp:199 #13 0x334265cc in ?? () from /lib/libpthread.so.0 #14 0x337b0b88 in clone () from /lib/libc.so.6 Backtrace stopped: previous frame inner to this frame (corrupt stack?) ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] assert_fail in btreeInvokeBusyHandler occasionally in a perodic DB update in 3.5.7, It's ok in 3.6.22
Version is 3.5.7 journal mode = DELETE SELECT sqlite_source_id(); 2011-01-28 17:03:50 ed759d5a9edb3bba5f48f243df47be29e3fe8cd7 static int btreeInvokeBusyHandler(void *pArg){ BtShared *pBt = (BtShared*)pArg; assert( pBt->db ); assert( sqlite3_mutex_held(pBt->db->mutex) ); return sqlite3InvokeBusyHandler(>db->busyHandler); } There is a periodic(1 second) DB commit update. It will receive signal 6 assertion fail occasionally. pBt->db is probably not the case. sqlite3_mutex_held could be a problem? Is there anyone could have some ideas for the possible assert_fail reason? It never happened in version 3.6.22. The journal mode is DELETE too. What could be the changes in 3.7.5 cause this problem? (gdb) bt #0 0x3370bb04 in raise () from /lib/libc.so.6 #1 0x3370d2f4 in abort () from /lib/libc.so.6 #2 0x337032a4 in __assert_fail () from /lib/libc.so.6 #3 0x100dc940 in btreeInvokeBusyHandler (pArg=0x102b3b50) at sqlite3.c:47153 #4 0x1013f1dc in sqlite3VdbeHalt (p=0x103ae298) at sqlite3.c:38543 #5 0x1018fda8 in sqlite3VdbeExec (p=) at sqlite3.c:63340 #6 sqlite3Step (p=0x103ae298) at sqlite3.c:59036 #7 0x101987e8 in sqlite3_step (pStmt=0x103ae298) at sqlite3.c:59101 #8 0x1016cb7c in sqlite3_exec (db=0x10856e18, zSql=0x106b3aa4 "COMMIT;", xCallback=0, pArg=0x0, pzErrMsg=0x388a87c0) at sqlite3.c:84523 #9 0x1003f744 in SqlQuery::execw (this=0x388a8844, sql_stmt=0x106b3aa4 "COMMIT;", context=0x101b91b8 "SlotUtilEvent.cpp", linenum=69, warnings=) at SqlQuery.cpp:281 #10 0x10089db8 in SlotUtilEvent::run (this=0x10a81e94) at SlotUtilEvent.cpp:94 #11 0x10003f40 in HwMonListener::run (this=0x106b28a8) at /mnt/local/cch/bugfix_test_11_01_02232011/isg6000/isg6k/mgmt-crd/linuxapps/hwmon/hwmon.cpp:1993 #12 0x10025c8c in Thread::start_thread (arg=0x106b28a8) at thread.cpp:199 #13 0x334265cc in ?? () from /lib/libpthread.so.0 #14 0x337b0b88 in clone () from /lib/libc.so.6 Backtrace stopped: previous frame inner to this frame (corrupt stack?) ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] signal 6 received due to assert_fail when writing DB
The version is 3.7.5 The GDB core dump is shown as below. gdb) bt #0 0x36a86b04 in raise () from /lib/libc.so.6 #1 0x36a882f4 in abort () from /lib/libc.so.6 #2 0x36a7e2a4 in __assert_fail () from /lib/libc.so.6 #3 0x100dc958 in btreeInvokeBusyHandler () #4 0x1013f1f4 in sqlite3VdbeHalt () #5 0x1018fdc0 in sqlite3Step () #6 0x10198800 in sqlite3_step () #7 0x1016cb94 in sqlite3_exec () #8 0x1003f744 in SqlQuery::execw () #9 0x10089dd0 in SlotUtilEvent::run () #10 0x10003f40 in HwMonListener::run () #11 0x10025c8c in Thread::start_thread () #12 0x367a15cc in ?? () from /lib/libpthread.so.0 #13 0x36b2bb88 in clone () from /lib/libc.so.6 Backtrace stopped: previous frame inner to this frame (corrupt stack?) ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] FW: receive signal 7 bus error when heavily read/write in the mode Journal_mode = WAL
The GDB report is shown as below. Program terminated with signal 7, Bus error. #0 0x1009fcd4 in sqlite3WalRead (pOut=, nOut=, pInWal=, pgno=, pWal=) at sqlite3.c:43910 43910 sqlite3.c: No such file or directory. in sqlite3.c (gdb) bt #0 0x1009fcd4 in sqlite3WalRead (pOut=, nOut=, pInWal=, pgno=, pWal=) at sqlite3.c:43910 #1 readDbPage (pPg=0x107b8100) at sqlite3.c:37721 #2 0x100a2858 in sqlite3PagerAcquire (pPager=0x102f81d0, pgno=82, ppPage=0x392764d8, noContent=0) at sqlite3.c:39933 #3 0x100c9efc in btreeGetPage (noContent=, ppPage=, pgno=, pBt=) at sqlite3.c:47038 #4 getAndInitPage (pBt=0x102bd1a0, pgno=82, ppPage=0x39276508) at sqlite3.c:47091 #5 0x100cc7f0 in moveToChild (pCur=0x103f0e00, newPgno=82) at sqlite3.c:49594 #6 0x100cd53c in sqlite3BtreeMovetoUnpacked (pCur=0x103f0e00, pIdxKey=0x0, intKey=1064, biasRight=0, pRes=0x39276798) at sqlite3.c:50054 #7 0x10135f68 in sqlite3VdbeExec (p=) at sqlite3.c:64257 #8 sqlite3Step (p=0x10374bf0) at sqlite3.c:59036 #9 0x101462c0 in sqlite3_step (pStmt=0x10374bf0) at sqlite3.c:59101 #10 0x10024bd0 in SqlQuery::step (this=0x39276c10, step_limit=0) at SqlQuery.cpp:655 #11 0x10053c54 in PmMlDlciCounts::updateRow (this=0x39329090) at PmMlDlciCounts.cpp:231 #12 0x10054304 in PmMlDlciCounts::writeDb (this=0x39329090) at PmMlDlciCounts.cpp:115 #13 0x100043fc in SyncWorker::run (this=0x38977008) at syncdb.cpp:123 #14 0x10005fa0 in Thread::start_thread (arg=0x38977008) at thread.cpp:199 #15 0x374db5cc in ?? () from /lib/libpthread.so.0 #16 0x37865b88 in clone () from /lib/libc.so.6 ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] receive signal 7 bus error when heavily read/write in the mode Journal_mode = WAL
The GDB report is shown as below. Program terminated with signal 7, Bus error. #0 0x1009fcd4 in sqlite3WalRead (pOut=, nOut=, pInWal=, pgno=, pWal=) at sqlite3.c:43910 43910 sqlite3.c: No such file or directory. in sqlite3.c (gdb) bt #0 0x1009fcd4 in sqlite3WalRead (pOut=, nOut=, pInWal=, pgno=, pWal=) at sqlite3.c:43910 #1 readDbPage (pPg=0x107b8100) at sqlite3.c:37721 #2 0x100a2858 in sqlite3PagerAcquire (pPager=0x102f81d0, pgno=82, ppPage=0x392764d8, noContent=0) at sqlite3.c:39933 #3 0x100c9efc in btreeGetPage (noContent=, ppPage=, pgno=, pBt=) at sqlite3.c:47038 #4 getAndInitPage (pBt=0x102bd1a0, pgno=82, ppPage=0x39276508) at sqlite3.c:47091 #5 0x100cc7f0 in moveToChild (pCur=0x103f0e00, newPgno=82) at sqlite3.c:49594 #6 0x100cd53c in sqlite3BtreeMovetoUnpacked (pCur=0x103f0e00, pIdxKey=0x0, intKey=1064, biasRight=0, pRes=0x39276798) at sqlite3.c:50054 #7 0x10135f68 in sqlite3VdbeExec (p=) at sqlite3.c:64257 #8 sqlite3Step (p=0x10374bf0) at sqlite3.c:59036 #9 0x101462c0 in sqlite3_step (pStmt=0x10374bf0) at sqlite3.c:59101 #10 0x10024bd0 in SqlQuery::step (this=0x39276c10, step_limit=0) at SqlQuery.cpp:655 #11 0x10053c54 in PmMlDlciCounts::updateRow (this=0x39329090) at PmMlDlciCounts.cpp:231 #12 0x10054304 in PmMlDlciCounts::writeDb (this=0x39329090) at PmMlDlciCounts.cpp:115 #13 0x100043fc in SyncWorker::run (this=0x38977008) at syncdb.cpp:123 #14 0x10005fa0 in Thread::start_thread (arg=0x38977008) at thread.cpp:199 #15 0x374db5cc in ?? () from /lib/libpthread.so.0 #16 0x37865b88 in clone () from /lib/libc.so.6 ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users