Skip to content

report a crash bug of sqlcipher on Android 4.0.3  #60

Closed
@tweetyf

Description

@tweetyf

the problem i met here is :
when you use beginTransaction() function, if there are too many sql statements lines between beginTransaction() function and endTranaction() . the code will crash and return error code "sqlite SQL logic error or missing database "
and code here is example, the problem is Complete reproducibility.

[code]
db = SQLiteDatabase.openOrCreateDatabase(databaseFile, "test123", null);
// LOG.d("db", "call from" + Thread.currentThread().getId());
String _ID = "_id";
db.beginTransaction();
db.execSQL(" CREATE TABLE IF NOT EXISTS ttt (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS rwerw (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS erwe (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS werwe (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS wqrwe (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS werwerwet (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS twee (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS ouio (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");

    db.execSQL(" CREATE TABLE IF NOT EXISTS ouio1 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
    db.execSQL(" CREATE TABLE IF NOT EXISTS ouio2 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
    db.execSQL(" CREATE TABLE IF NOT EXISTS ouio3 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
    db.execSQL(" CREATE TABLE IF NOT EXISTS ouio4 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");

    db.execSQL(" CREATE TABLE IF NOT EXISTS ouio41 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
    db.execSQL(" CREATE TABLE IF NOT EXISTS ouio42 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
    db.execSQL(" CREATE TABLE IF NOT EXISTS ouio43 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
    db.execSQL(" CREATE TABLE IF NOT EXISTS ouio44 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
    db.execSQL(" CREATE TABLE IF NOT EXISTS ouio45 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
    db.execSQL(" CREATE TABLE IF NOT EXISTS ouio46 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
    db.execSQL(" CREATE TABLE IF NOT EXISTS ouio47 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
    db.execSQL(" CREATE TABLE IF NOT EXISTS ouio48 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
    db.execSQL(" CREATE TABLE IF NOT EXISTS ouio49 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
    db.endTransaction();

[/code]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions