Quantcast

about sqlite db.delete the file

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

about sqlite db.delete the file

zjc@tofocus.cn

hi,
   recently, I have a prolbem, that my android(4.3) application use sqlite db to store the data.
my had two thread visit the db, and offten happen  delete  db table, so my data lose.



03-18 14:25:04.134 2345-2384/? E/SQLiteLog: (26) statement aborts at 78: [SELECT locale FROM android_metadata UNION SELECT NULL ORDER BY locale DESC LIMIT 1] file is encrypted or is not a database
03-18 14:25:04.144 2345-2384/? E/SQLiteDatabase: Failed to open database '/data/data/com.mxcg.abcmarket/databases/citycardconfig.db'.
                                                 android.database.sqlite.SQLiteException: Failed to change locale for db '/data/data/com.mxcg.abcmarket/databases/citycardconfig.db' to 'zh_CN'.
                                                     at android.database.sqlite.SQLiteConnection.setLocaleFromConfiguration(SQLiteConnection.java:393)
                                                     at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:218)
                                                     at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
                                                     at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
                                                     at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
                                                     at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
                                                     at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804)
                                                     at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789)
                                                     at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
                                                     at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:898)
                                                     at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:235)
                                                     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)
                                                     at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)
                                                     at com.mxcg.abcmarket.dbdao.BaseDao.queryflag(BaseDao.java:108)
                                                     at java.lang.reflect.Method.invokeNative(Native Method)
                                                     at java.lang.reflect.Method.invoke(Method.java:525)
                                                     at com.mxcg.abcmarket.tools.DbUtils.queryflog(DbUtils.java:332)
                                                     at com.mxcg.abcmarket.POS.SMKBackTcpCtl.GoodsWaterSend(SMKBackTcpCtl.java:256)
                                                     at com.mxcg.abcmarket.common.BaseApplication$BusinessTask.run(BaseApplication.java:103)
                                                     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390)
                                                     at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:276)
                                                     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:153)
                                                     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:268)
                                                     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
                                                     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
                                                     at java.lang.Thread.run(Thread.java:841)
                                                  Caused by: android.database.sqlite.SQLiteDatabaseCorruptException: file is encrypted or is not a database (code 26)
                                                     at android.database.sqlite.SQLiteConnection.nativeExecuteForString(Native Method)
                                                     at android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:641)
                                                     at android.database.sqlite.SQLiteConnection.setLocaleFromConfiguration(SQLiteConnection.java:374)
                                                     at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:218)?
                                                     at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)?
                                                     at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)?
                                                     at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)?
                                                     at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)?
                                                     at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804)?
                                                     at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789)?
                                                     at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)?
                                                     at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:898)?
                                                     at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:235)?
                                                     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)?
                                                     at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)?
                                                     at com.mxcg.abcmarket.dbdao.BaseDao.queryflag(BaseDao.java:108)?
                                                     at java.lang.reflect.Method.invokeNative(Native Method)?
                                                     at java.lang.reflect.Method.invoke(Method.java:525)?
                                                     at com.mxcg.abcmarket.tools.DbUtils.queryflog(DbUtils.java:332)?
                                                     at com.mxcg.abcmarket.POS.SMKBackTcpCtl.GoodsWaterSend(SMKBackTcpCtl.java:256)?
                                                     at com.mxcg.abcmarket.common.BaseApplication$BusinessTask.run(BaseApplication.java:103)?
                                                     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390)?
                                                     at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:276)?
                                                     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:153)?
                                                     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:268)?
                                                     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)?
                                                     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)?
                                                     at java.lang.Thread.run(Thread.java:841)?
03-18 14:25:04.184 2345-2350/? D/dalvikvm: GC_CONCURRENT freed 4152K, 31% free 15100K/21824K, paused 2ms+8ms, total 47ms
03-18 14:25:04.184 2345-2384/? D/dalvikvm: WAIT_FOR_CONCURRENT_GC blocked 39ms
03-18 14:25:04.184 2345-2384/? E/SQLiteOpenHelper: Couldn't open citycardconfig.db for writing (will try read-only):
                                                   android.database.sqlite.SQLiteException: Failed to change locale for db '/data/data/com.mxcg.abcmarket/databases/citycardconfig.db' to 'zh_CN'.
                                                       at android.database.sqlite.SQLiteConnection.setLocaleFromConfiguration(SQLiteConnection.java:393)
                                                       at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:218)
                                                       at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
                                                       at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
                                                       at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
                                                       at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
                                                       at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804)
                                                       at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789)
                                                       at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
                                                       at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:898)
                                                       at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:235)
                                                       at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)
                                                       at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)
                                                       at com.mxcg.abcmarket.dbdao.BaseDao.queryflag(BaseDao.java:108)
                                                       at java.lang.reflect.Method.invokeNative(Native Method)
                                                       at java.lang.reflect.Method.invoke(Method.java:525)
                                                       at com.mxcg.abcmarket.tools.DbUtils.queryflog(DbUtils.java:332)
                                                       at com.mxcg.abcmarket.POS.SMKBackTcpCtl.GoodsWaterSend(SMKBackTcpCtl.java:256)
                                                       at com.mxcg.abcmarket.common.BaseApplication$BusinessTask.run(BaseApplication.java:103)
                                                       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390)
                                                       at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:276)
                                                       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:153)
                                                       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:268)
                                                       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
                                                       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
                                                       at java.lang.Thread.run(Thread.java:841)
                                                    Caused by: android.database.sqlite.SQLiteDatabaseCorruptException: file is encrypted or is not a database (code 26)
                                                       at android.database.sqlite.SQLiteConnection.nativeExecuteForString(Native Method)
                                                       at android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:641)
                                                       at android.database.sqlite.SQLiteConnection.setLocaleFromConfiguration(SQLiteConnection.java:374)
                                                       at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:218)?
                                                       at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)?
                                                       at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)?
                                                       at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)?
                                                       at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)?
                                                       at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804)?
                                                       at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789)?
                                                       at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)?
                                                       at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:898)?
                                                       at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:235)?
                                                       at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)?
                                                       at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)?
                                                       at com.mxcg.abcmarket.dbdao.BaseDao.queryflag(BaseDao.java:108)?
                                                       at java.lang.reflect.Method.invokeNative(Native Method)?
                                                       at java.lang.reflect.Method.invoke(Method.java:525)?
                                                       at com.mxcg.abcmarket.tools.DbUtils.queryflog(DbUtils.java:332)?
                                                       at com.mxcg.abcmarket.POS.SMKBackTcpCtl.GoodsWaterSend(SMKBackTcpCtl.java:256)?
                                                       at com.mxcg.abcmarket.common.BaseApplication$BusinessTask.run(BaseApplication.java:103)?
                                                       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390)?
                                                       at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:276)?
                                                       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:153)?
                                                       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:268)?
                                                       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)?
                                                       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)?
                                                       at java.lang.Thread.run(Thread.java:841)?
03-18 14:25:04.194 2345-2384/? E/SQLiteLog: (26) statement aborts at 0: [PRAGMA user_version;] file is encrypted or is not a database
03-18 14:25:04.194 2345-2384/? E/DefaultDatabaseErrorHandler: Corruption reported by sqlite on database: /data/data/com.mxcg.abcmarket/databases/citycardconfig.db
03-18 14:25:04.194 2345-2384/? E/DefaultDatabaseErrorHandler: deleting the database file: /data/data/com.mxcg.abcmarket/databases/citycardconfig.db
03-18 14:25:04.194 2345-2384/? W/System.err: android.database.sqlite.SQLiteDatabaseCorruptException: file is encrypted or is not a database (code 26)
03-18 14:25:04.194 2345-2384/? W/System.err:     at android.database.sqlite.SQLiteConnection.nativeExecuteForLong(Native Method)
03-18 14:25:04.194 2345-2384/? W/System.err:     at android.database.sqlite.SQLiteConnection.executeForLong(SQLiteConnection.java:598)
03-18 14:25:04.194 2345-2384/? W/System.err:     at android.database.sqlite.SQLiteSession.executeForLong(SQLiteSession.java:652)
03-18 14:25:04.194 2345-2384/? W/System.err:     at android.database.sqlite.SQLiteStatement.simpleQueryForLong(SQLiteStatement.java:107)
03-18 14:25:04.194 2345-2384/? W/System.err:     at android.database.DatabaseUtils.longForQuery(DatabaseUtils.java:813)
03-18 14:25:04.194 2345-2384/? W/System.err:     at android.database.DatabaseUtils.longForQuery(DatabaseUtils.java:801)
03-18 14:25:04.194 2345-2384/? W/System.err:     at android.database.sqlite.SQLiteDatabase.getVersion(SQLiteDatabase.java:862)
03-18 14:25:04.194 2345-2384/? W/System.err:     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:242)
03-18 14:25:04.194 2345-2384/? W/System.err:     at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)
03-18 14:25:04.194 2345-2384/? W/System.err:     at com.mxcg.abcmarket.dbdao.BaseDao.queryflag(BaseDao.java:108)
03-18 14:25:04.194 2345-2384/? W/System.err:     at java.lang.reflect.Method.invokeNative(Native Method)
03-18 14:25:04.194 2345-2384/? W/System.err:     at java.lang.reflect.Method.invoke(Method.java:525)
03-18 14:25:04.194 2345-2384/? W/System.err:     at com.mxcg.abcmarket.tools.DbUtils.queryflog(DbUtils.java:332)
03-18 14:25:04.194 2345-2384/? W/System.err:     at com.mxcg.abcmarket.POS.SMKBackTcpCtl.GoodsWaterSend(SMKBackTcpCtl.java:256)
03-18 14:25:04.194 2345-2384/? W/System.err:     at com.mxcg.abcmarket.common.BaseApplication$BusinessTask.run(BaseApplication.java:103)
03-18 14:25:04.194 2345-2384/? W/System.err:     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390)
03-18 14:25:04.194 2345-2384/? W/System.err:     at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:276)
03-18 14:25:04.194 2345-2384/? W/System.err:     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:153)
03-18 14:25:04.194 2345-2384/? W/System.err:     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:268)
03-18 14:25:04.194 2345-2384/? W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
03-18 14:25:04.194 2345-2384/? W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
03-18 14:25:04.194 2345-2384/? W/System.err:     at java.lang.Thread.run(Thread.java:841)
03-18 14:25:04.194 2345-2384/? I/System.out: START´╝Üsize 0


and my  applicationn db create again . later the db delete again.and always repeated, we  restart the device .it ok.



please tell me why happen ?


thanks  lots


jinchengzou

2017/03/22






_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: about sqlite db.delete the file

Clemens Ladisch
[hidden email] wrote:
>    recently, I have a prolbem, that my android(4.3) application use sqlite db to store the data.
> my had two thread visit the db, and offten happen  delete  db table, so my data lose.
> [...]
> 03-18 14:25:04.194 2345-2384/? E/SQLiteLog: (26) statement aborts at 0: [PRAGMA user_version;] file is encrypted or is not a database
> 03-18 14:25:04.194 2345-2384/? E/DefaultDatabaseErrorHandler: Corruption reported by sqlite on database: /data/data/com.mxcg.abcmarket/databases/citycardconfig.db
> 03-18 14:25:04.194 2345-2384/? E/DefaultDatabaseErrorHandler: deleting the database file: /data/data/com.mxcg.abcmarket/databases/citycardconfig.db

The file got corrupted.  This is either a hardware problem, or wrong
(insufficient) locking in your threaded code.

If it happens only with that file, then it is much more likely that your code
is at fault.


Regards,
Clemens
_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
Loading...