Re: [sqlite] core dump when writing the DB in the middle of the long read

2016-08-04 Thread ChingChang Hsiao
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

2016-08-03 Thread ChingChang Hsiao
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

2015-09-22 Thread ChingChang Hsiao
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

2015-09-22 Thread ChingChang Hsiao


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

2013-09-28 Thread ChingChang Hsiao

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

2013-09-04 Thread ChingChang Hsiao

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

2013-09-03 Thread ChingChang Hsiao

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

2013-09-03 Thread ChingChang Hsiao
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

2013-08-11 Thread ChingChang Hsiao
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

2011-11-02 Thread ChingChang Hsiao



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

2011-11-02 Thread ChingChang Hsiao

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

2011-11-01 Thread ChingChang Hsiao


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

2011-11-01 Thread ChingChang Hsiao
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

2011-10-24 Thread ChingChang Hsiao

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

2011-05-16 Thread ChingChang Hsiao

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

2011-05-16 Thread ChingChang Hsiao
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

2011-05-10 Thread ChingChang Hsiao
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

2011-05-10 Thread ChingChang Hsiao
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

2011-04-05 Thread ChingChang Hsiao
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)

2011-03-30 Thread ChingChang Hsiao
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)

2011-03-30 Thread ChingChang Hsiao


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

2011-03-30 Thread ChingChang Hsiao
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

2011-03-29 Thread ChingChang Hsiao
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

2011-03-28 Thread ChingChang Hsiao




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

2011-03-28 Thread ChingChang Hsiao
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