Null-dereference READ in fts3SelectLeaf |
|||||||
Issue descriptionDetailed report: https://clusterfuzz.com/testcase?key=5319897569296384 Fuzzer: libFuzzer_sqlite3_fts3_lpm_fuzzer Fuzz target binary: sqlite3_fts3_lpm_fuzzer Job Type: libfuzzer_chrome_msan Platform Id: linux Crash Type: Null-dereference READ Crash Address: 0x000000000000 Crash State: fts3SelectLeaf fts3SegReaderCursor fts3TermSegReaderCursor Sanitizer: memory (MSAN) Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_msan&range=615333:615343 Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=5319897569296384 Issue filed automatically. See https://www.chromium.org/developers/testing/memorysanitizer#TOC-Reproducing-ClusterFuzz-Bugs for instructions to reproduce this bug locally.
,
Dec 16
Automatically adding ccs based on OWNERS file / target commit history. If this is incorrect, please add ClusterFuzz-Wrong label.
,
Dec 16
Automatically assigning owner based on suspected regression changelist https://chromium.googlesource.com/chromium/src/+/7d3def8575ecd2e5e2e7ab7f585961206007bd25 (Adds LPM-based SQLite fuzzer). If this is incorrect, please let us know why and apply the Test-Predator-Wrong-CLs label. If you aren't the correct owner for this issue, please unassign yourself as soon as possible so it can be re-triaged.
,
Dec 17
,
Jan 11
mpdenton@: Can you please get the relevant queries, post them here, and involve the SQLite team? Thank you very much!
,
Jan 11
I actually get this assertion:
sqlite3_fts3_lpm_fuzzer: ../../third_party/sqlite/amalgamation/sqlite3.c:169745: int sqlite3Fts3SegReaderNew(int, int, sqlite3_int64, sqlite3_int64, sqlite3_int64, const char *, int, Fts3SegReader **): Assertion `iStartLeaf<=iEndLeaf' failed.
Which is probably why I never followed up on this bug, since there is a similar one elsewhere.
But when compiling without assertions, I do get this NULL dereference.
So here are some queries. The relevant ones seem to be: RollbackStatement, CommitTransaction, FTS3 special insertion commands, and FTS hidden table insertions, updates, and deletes.
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(Table0, tokenize=simple);
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir(blockid) VALUES('������������', '������������');
COMMIT;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
COMMIT;
COMMIT;
COMMIT;
INSERT INTO Table0_segdir DEFAULT VALUES;
COMMIT;
ROLLBACK TRANSACTION;
UPDATE Table0_segdir SET start_block = 1 WHERE block || 1;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(tokenize=porter);
COMMIT;
ROLLBACK TRANSACTION;
INSERT INTO Table0(Table0) VALUES('optimize');
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
UPDATE Table0_segdir start_block = 0;
INSERT INTO Table0(Table0) VALUES('automerge=0');
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
COMMIT;
DELETE FROM Table0_segdir;
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
COMMIT;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
DELETE FROM Table0_segdir;
COMMIT;
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0_segdir DEFAULT VALUES;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN IMMEDIATE TRANSACTION;
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
COMMIT;
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN IMMEDIATE TRANSACTION;
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
COMMIT;
INSERT INTO Table0_segdir(blockid) VALUES(1, 1);
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
SELECT * FROM Table0 WHERE Col0 MATCH 'Col17:a';
ROLLBACK TRANSACTION;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
COMMIT;
INSERT INTO Table0(Table0) VALUES('optimize');
COMMIT;
UPDATE Table0_segdir SET start_block = 1 WHERE block || 1;
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
ROLLBACK TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
UPDATE Table0_segdir SET start_block = 1 WHERE block || 1;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0(Table0) VALUES('optimize');
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0_segdir(blockid) VALUES('������������', '������������');
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(tokenize=simple);
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN IMMEDIATE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir(blockid) VALUES(x'ffffff94', x'ffffff94');
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
COMMIT;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
COMMIT;
ROLLBACK TRANSACTION;
BEGIN IMMEDIATE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0(Table0) VALUES('optimize');
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0(Table0) VALUES('optimize');
COMMIT;
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
INSERT INTO Table0_segdir DEFAULT VALUES;
DELETE FROM Table0_segdir;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
COMMIT;
COMMIT;
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0_segdir(blockid) VALUES('������������', '������������');
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
DELETE FROM Table0_segments;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
DELETE FROM Table0_segdir;
COMMIT;
DELETE FROM Table0_segdir;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table1 USING fts3();
ROLLBACK TRANSACTION;
COMMIT;
COMMIT;
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0(Table0) VALUES('optimize');
UPDATE Table0_segdir SET start_block = 1;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table1 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
UPDATE Table0_segdir SET start_block = 1;
BEGIN IMMEDIATE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir(blockid) VALUES(x'ffffff94', x'ffffff94');
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
UPDATE Table0_segdir start_block = 0;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
END;
BEGIN EXCLUSIVE TRANSACTION;
ROLLBACK TRANSACTION;
DELETE FROM Table0_segdir;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0(Table0) VALUES('optimize');
CREATE VIRTUAL TABLE Schema0.Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0(Table0) VALUES('optimize');
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(tokenize=porter);
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table1 USING fts3();
INSERT INTO Table0(Table0) VALUES('optimize');
DELETE FROM Table0_segdir;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
ROLLBACK TRANSACTION;
UPDATE Table0_segdir SET start_block = 1;
INSERT INTO Table0(Table0) VALUES('optimize');
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
COMMIT;
ROLLBACK TRANSACTION;
INSERT INTO Table0(Table0) VALUES('optimize');
INSERT INTO Table0_segdir DEFAULT VALUES;
ROLLBACK TRANSACTION;
INSERT INTO Table0_segdir(blockid) VALUES(x'ffffff94', x'ffffff94');
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
UPDATE Table0_segdir SET start_block = 1;
BEGIN EXCLUSIVE TRANSACTION;
ROLLBACK TRANSACTION;
COMMIT;
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table1 USING fts3();
UPDATE Table0_segdir SET start_block = 1;
COMMIT;
ROLLBACK TRANSACTION;
COMMIT;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
COMMIT;
COMMIT;
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
ROLLBACK TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segments(blockid) VALUES(like(1, 1, 0) , like(1, 1, 0) );
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
UPDATE Table0_segdir SET start_block = 1 WHERE block || 1;
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(Col0, Col0, tokenize=simple);
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0(Table0) VALUES('optimize');
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table1 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir(blockid) VALUES(1, 1);
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segments(blockid) VALUES(CASE WHEN 1 THEN 1 WHEN 1 THEN 1 END , CASE WHEN 1 THEN 1 WHEN 1 THEN 1 END );
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir(blockid) VALUES(x'ffffff94', x'ffffff94');
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0(Table0) VALUES('optimize');
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN IMMEDIATE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
COMMIT;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
ROLLBACK TRANSACTION;
COMMIT;
COMMIT;
COMMIT;
COMMIT;
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(tokenize=simple);
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
DELETE FROM Table0_segdir WHERE idx || 1;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
INSERT INTO Table0(Table0) VALUES('optimize');
INSERT INTO Table0_segdir DEFAULT VALUES;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0_segdir DEFAULT VALUES;
UPDATE Table0_segdir start_block = 0;
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
ROLLBACK TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir(blockid) VALUES(x'ffffff94', x'ffffff94');
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
DELETE FROM Table0_segments;
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
END;
COMMIT;
COMMIT;
DELETE FROM Table0_segdir;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
UPDATE Table0_segdir SET start_block = 1;
INSERT INTO Table0(Table0) VALUES('optimize');
BEGIN IMMEDIATE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN IMMEDIATE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
COMMIT;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
UPDATE Table0_segdir SET start_block = 1;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
UPDATE Table0_segdir SET start_block = 1;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
UPDATE Table0_segdir SET start_block = 1 WHERE block || 1;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
ROLLBACK TRANSACTION;
COMMIT;
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
COMMIT;
COMMIT;
UPDATE Table0_segdir SET start_block = 1;
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table1 USING fts3();
INSERT INTO Table0(Table0) VALUES('optimize');
BEGIN IMMEDIATE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table1 USING fts3();
DELETE FROM Table0_segments;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table1 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
BEGIN IMMEDIATE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
UPDATE Table0_segdir SET start_block = 1;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
UPDATE Table0_segdir start_block = 0;
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
ROLLBACK TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(tokenize=porter);
BEGIN EXCLUSIVE TRANSACTION;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
DELETE FROM Table0_segments;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
COMMIT;
CREATE VIRTUAL TABLE Table1 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
UPDATE Table0_segdir SET start_block = 1;
INSERT INTO Table0(Table0) VALUES('optimize');
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(tokenize=simple);
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(tokenize=porter);
DELETE FROM Table0_segdir;
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0(Table0) VALUES('optimize');
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
COMMIT;
ROLLBACK TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0(Table0) VALUES('optimize');
UPDATE Table0_segdir SET start_block = 1;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0_segdir DEFAULT VALUES;
ROLLBACK TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN IMMEDIATE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN IMMEDIATE TRANSACTION;
COMMIT;
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
DELETE FROM Table0_segments;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
DELETE FROM Table0_segdir;
UPDATE Table0_segdir start_block = 0;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
UPDATE Table0_segdir SET blockid = x'fffffffffffffffeffffffff7f00000000';
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(tokenize=porter);
BEGIN IMMEDIATE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN IMMEDIATE TRANSACTION;
COMMIT;
DELETE FROM Table0_segdir;
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(Col0, Col0, tokenize=simple);
BEGIN EXCLUSIVE TRANSACTION;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3(Col0);
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN IMMEDIATE TRANSACTION;
UPDATE Table0_segdir SET start_block = 1;
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
COMMIT;
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(tokenize=porter);
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
UPDATE Table0_segdir SET start_block = 1;
BEGIN EXCLUSIVE TRANSACTION;
DELETE FROM Table0_segments;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(tokenize=porter);
INSERT INTO Table0_segdir DEFAULT VALUES;
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN IMMEDIATE TRANSACTION;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir(blockid) VALUES(1, 1);
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir(blockid) VALUES(1, 1);
CREATE VIRTUAL TABLE Schema0.Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0_segdir DEFAULT VALUES;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0(Table0) VALUES('optimize');
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0_segdir DEFAULT VALUES;
COMMIT;
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table1 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
UPDATE Table0_segdir SET start_block = 1 WHERE block || 1;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
COMMIT;
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
UPDATE Table0_segdir SET start_block = 1;
ROLLBACK TRANSACTION;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
COMMIT;
INSERT INTO Table0(Table0) VALUES('optimize');
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir(blockid) VALUES(x'ffffff94', x'ffffff94');
BEGIN EXCLUSIVE TRANSACTION;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3(tokenize=porter);
COMMIT;
COMMIT;
CREATE VIRTUAL TABLE Table1 USING fts3();
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
DELETE FROM Table0_segdir;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
UPDATE Table0_segdir SET start_block = 1 WHERE block || 1;
UPDATE Table0_segdir start_block = 0;
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(tokenize=porter);
INSERT INTO Table0_segdir DEFAULT VALUES;
ROLLBACK TRANSACTION;
COMMIT;
INSERT INTO Table0_segdir(blockid) VALUES(1, 1);
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(tokenize=porter);
INSERT INTO Table0_segdir DEFAULT VALUES;
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
ROLLBACK TRANSACTION;
ROLLBACK TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
DELETE FROM Table0_segdir WHERE idx || 1;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
END;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
UPDATE Table0_segdir start_block = 0;
ROLLBACK TRANSACTION;
DELETE FROM Table0_segdir;
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(tokenize=porter);
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(tokenize=simple);
COMMIT;
INSERT INTO Table0_segdir(blockid) VALUES(x'ffffff94', x'ffffff94');
CREATE VIRTUAL TABLE Table0 USING fts3();
DELETE FROM Table0_segdir;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
BEGIN IMMEDIATE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(tokenize=porter);
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
UPDATE Table0_segdir SET level = 1;
ROLLBACK TRANSACTION;
UPDATE Table0_segdir SET start_block = 1;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0(Table0) VALUES('optimize');
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0(Table0) VALUES('optimize');
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0(Table0) VALUES('optimize');
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0(Table0) VALUES('optimize');
BEGIN EXCLUSIVE TRANSACTION;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
COMMIT;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
INSERT INTO Table0_segdir(blockid) VALUES('������������', '������������');
COMMIT;
DELETE FROM Table0_segdir;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(tokenize=porter);
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir(blockid) VALUES(x'ffffff94', x'ffffff94');
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN IMMEDIATE TRANSACTION;
CREATE VIRTUAL TABLE Table1 USING fts3();
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0(Table0) VALUES('optimize');
SELECT * FROM Table0 WHERE Col0 MATCH 'Col17:a';
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
UPDATE Table0_segdir SET idx = 1;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0(Table0) VALUES('optimize');
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(tokenize=simple);
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
DELETE FROM Table0_segments;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
COMMIT;
INSERT INTO Table0(Table0) VALUES('optimize');
COMMIT;
COMMIT;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
INSERT INTO Table0(Table0) VALUES('optimize');
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
INSERT INTO Table0_segdir DEFAULT VALUES;
DELETE FROM Table0_segdir;
BEGIN EXCLUSIVE TRANSACTION;
COMMIT;
INSERT INTO Table0(Table0) VALUES('optimize');
COMMIT;
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(tokenize=porter);
INSERT INTO Table0_segdir DEFAULT VALUES;
COMMIT;
UPDATE Table0_segdir SET level = 1;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0_segdir(blockid) VALUES(x'ffffff94', x'ffffff94');
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN IMMEDIATE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
DELETE FROM Table0_segdir;
CREATE VIRTUAL TABLE Table0 USING fts3();
DELETE FROM Table0_segdir;
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3(tokenize=porter);
INSERT INTO Table0_segdir DEFAULT VALUES;
ROLLBACK TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
COMMIT;
INSERT INTO Table0_segdir(blockid) VALUES(x'ffffff94', x'ffffff94');
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN IMMEDIATE TRANSACTION;
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table1 USING fts3();
UPDATE Table0_segdir SET start_block = 1;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
ROLLBACK TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0(Table0) VALUES('optimize');
ROLLBACK TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
SELECT * FROM Table0 WHERE Table0 MATCH 'Col17:a';
COMMIT;
DELETE FROM Table0_segments;
CREATE VIRTUAL TABLE Table1 USING fts3();
COMMIT;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(Col0, Col0, tokenize=simple);
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
SELECT * FROM Table0 WHERE Col0 MATCH 'Col17:a';
CREATE VIRTUAL TABLE Table1 USING fts3();
ROLLBACK TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
DELETE FROM Table0_segdir;
CREATE VIRTUAL TABLE Table1 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0_segdir DEFAULT VALUES;
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
ROLLBACK TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0(Table0) VALUES('optimize');
INSERT INTO Table0_segdir DEFAULT VALUES;
UPDATE Table0_segdir SET blockid = x'fffffffffffffffeffffffff7f00000000';
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir(blockid) VALUES(x'ffffff94', x'ffffff94');
COMMIT;
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(tokenize=porter);
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
COMMIT;
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table1 USING fts3();
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(tokenize=porter);
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table1 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(tokenize=porter);
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN EXCLUSIVE TRANSACTION;
COMMIT;
DELETE FROM Table0_segdir;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
DELETE FROM Table0_segdir;
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0_segdir DEFAULT VALUES;
UPDATE Table0_segdir SET start_block = 1;
ROLLBACK TRANSACTION;
BEGIN IMMEDIATE TRANSACTION;
DELETE FROM Table0_segdir;
CREATE VIRTUAL TABLE Schema0.Table0 USING fts3();
COMMIT;
COMMIT;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(Col0, Col0, tokenize=simple);
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
COMMIT;
COMMIT;
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE temp.Table0 USING fts3();
BEGIN IMMEDIATE TRANSACTION;
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(tokenize=porter);
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE IF NOT EXISTS Table0 USING fts3(Table0, tokenize=simple);
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
INSERT INTO Table0(Table0) VALUES('optimize');
COMMIT;
UPDATE Table0_segdir SET idx = 1;
UPDATE Table0_segdir SET start_block = 1;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3(tokenize=porter);
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
ROLLBACK TRANSACTION;
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Schema0.Table0 USING fts3();
ROLLBACK TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
ROLLBACK TRANSACTION;
ROLLBACK TRANSACTION;
COMMIT;
INSERT INTO Table0_segdir DEFAULT VALUES;
UPDATE Table0_segdir SET start_block = 1;
COMMIT;
COMMIT;
ROLLBACK TRANSACTION;
INSERT INTO Table0(Table0) VALUES('optimize');
INSERT INTO Table0_segdir DEFAULT VALUES;
INSERT INTO Table0_segdir(blockid) VALUES(x'ffffff94', x'ffffff94');
BEGIN EXCLUSIVE TRANSACTION;
BEGIN EXCLUSIVE TRANSACTION;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
COMMIT;
COMMIT;
CREATE VIRTUAL TABLE Table1 USING fts3();
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
UPDATE Table0_segdir SET start_block = 1;
BEGIN IMMEDIATE TRANSACTION;
INSERT INTO Table0(Table0) VALUES('optimize');
INSERT INTO Table0(Table0) VALUES('optimize');
ROLLBACK TRANSACTION;
COMMIT;
CREATE VIRTUAL TABLE Schema0.Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
CREATE VIRTUAL TABLE Table0 USING fts3();
,
Jan 11
Simplified test case: CREATE VIRTUAL TABLE Table0 USING fts3(); INSERT INTO Table0_segdir VALUES(1,NULL,1,NULL,NULL,NULL); SELECT * FROM Table0 WHERE Table0 MATCH 'a'; Fixed by check-in https://www.sqlite.org/src/info/2d7b1d1d41ff69d5
,
Jan 12
I am backporting this.
,
Jan 14
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0abd626ef136c39711131a2ad9947cb61d6b4b7f commit 0abd626ef136c39711131a2ad9947cb61d6b4b7f Author: Victor Costan <pwnall@chromium.org> Date: Mon Jan 14 22:15:54 2019 sqlite: Backport a few more bug fixes. Bug: 913235 , 914022 , 914023 , 914027 , 914155 , 914507, 914648 , 914970 , 915499 , 921298, 921348, 921355 Change-Id: I8a03ded5cda06ac60adfc63cd71487f5161b21e6 Reviewed-on: https://chromium-review.googlesource.com/c/1408357 Reviewed-by: Chris Mumford <cmumford@google.com> Commit-Queue: Victor Costan <pwnall@chromium.org> Cr-Commit-Position: refs/heads/master@{#622627} [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/amalgamation/sqlite3.c [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0001-Modify-default-VFS-to-support-WebDatabase.patch [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0002-Virtual-table-supporting-recovery-of-corrupted-datab.patch [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0003-Custom-shell.c-helpers-to-load-Chromium-s-ICU-data.patch [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0004-fts3-Disable-fts3_tokenizer-and-fts4.patch [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0005-fuchsia-Use-dot-file-locking-for-sqlite.patch [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0006-Fix-dbfuzz2-for-Clusterfuzz.patch [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0007-Fix-the-Makefile-so-that-it-honors-CFLAGS-when-build.patch [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0008-Adjustments-to-the-page-cache-to-try-to-avoid-harmle.patch [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0009-Remove-an-ALWAYS-from-a-branch-that-is-not-always-ta.patch [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0010-Fix-a-problem-with-nested-CTEs-with-the-same-table.patch [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0011-Fix-detection-of-self-referencing-rows-in-foreign-ke.patch [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0012-Fix-a-segfault-caused-by-using-the-RAISE-function-in.patch [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0013-Fix-for-an-assert-that-could-be-false.patch [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0014-Fix-another-problem-found-by-Matthew-Denton-s-new-fu.patch [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0015-Report-a-new-corruption-case.patch [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0016-Avoid-a-buffer-overread-in-ptrmapPutOvflPtr.patch [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0017-Improved-detection-of-cell-corruption-in-sqlite3Vdbe.patch [add] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0018-Fix-a-segfault-in-fts3-prompted-by-a-corrupted-datab.patch [add] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0019-Prevent-integer-overflow-from-leading-to-buffer-over.patch [add] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0020-Add-extra-tests-for-database-corruption-inside-defra.patch [add] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0021-Fix-an-off-by-one-error-on-a-Goto-in-the-code-genera.patch [add] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0022-Fix-overread-on-corrupted-btree-key.patch [add] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0023-Avoid-buffer-overreads-on-corrupted-database-files.patch [add] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0024-Fix-integer-overflow-while-running-PRAGMA-integrity_.patch [add] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0025-Improved-corruption-handling-while-balancing-pages.patch [add] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0026-Avoid-reading-off-the-front-of-a-page-buffer-when-ba.patch [add] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/patches/0027-Fix-MSAN-error-in-sqlite3VdbeRecordUnpack-on-a-corru.patch [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/src/ext/fts3/fts3.c [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/src/src/btree.c [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/src/src/insert.c [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/src/src/pcache1.c [modify] https://crrev.com/0abd626ef136c39711131a2ad9947cb61d6b4b7f/third_party/sqlite/src/src/vdbeaux.c
,
Jan 15
ClusterFuzz has detected this issue as fixed in range 622610:622627. Detailed report: https://clusterfuzz.com/testcase?key=5319897569296384 Fuzzer: libFuzzer_sqlite3_fts3_lpm_fuzzer Fuzz target binary: sqlite3_fts3_lpm_fuzzer Job Type: libfuzzer_chrome_msan Platform Id: linux Crash Type: Null-dereference READ Crash Address: 0x000000000000 Crash State: fts3SelectLeaf fts3SegReaderCursor fts3TermSegReaderCursor Sanitizer: memory (MSAN) Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_msan&range=615333:615343 Fixed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_msan&range=622610:622627 Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=5319897569296384 See https://www.chromium.org/developers/testing/memorysanitizer#TOC-Reproducing-ClusterFuzz-Bugs for instructions to reproduce this bug locally. If you suspect that the result above is incorrect, try re-doing that job on the test case report page.
,
Jan 15
ClusterFuzz testcase 5319897569296384 is verified as fixed, so closing issue as verified. If this is incorrect, please add ClusterFuzz-Wrong label and re-open the issue. |
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by ClusterFuzz
, Dec 16Labels: Test-Predator-Auto-Components