Tasks sync issues
- /e/ version: /e/ test hobart
- Device model: kiwi (nougat)
- When it started to occur: both on fresh install and after update
- Reproducible with the last /e/ version: -
- Reproducible with LineageOS: -
Summary
On the last AccountManager version, it seems the Tasks app synchronisation is broken.
-
The device is unusable -
The bug is the source of a data loss or a big waste of time -
The bug concerns a third party app -
The bug concerns security -
The bug concerns privacy
The problem
Steps to reproduce
- Install the /e/ test build
- Add an /e/ account
- Add a new task in Tasks app
What is the current behavior?
- The task is not synced on ecloud
- A white page is shown on a regular basis (only on install after update)
What is the expected correct behavior?
Tasks have to be synced without any configuration, both when the update is installed on a fresh installation or after updating a previous version.
Technical informations
The Tasks app used is OpenTasks, and not the fork we did.
Relevant logs (adb logcat
)
The following log appears when the white page appears.
2020-03-09 10:51:44.113 3486-3506/foundation.e.accountmanager E/davx5: [foundation.e.accountmanager.App] Unhandled exception!
EXCEPTION java.lang.IllegalStateException: Migration didn't properly handle: service(foundation.e.accountmanager.model.Service).
Expected:
TableInfo{name='service', columns={principal=Column{name='principal', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0, defaultValue='null'}, authState=Column{name='authState', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0, defaultValue='null'}, accountName=Column{name='accountName', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}, id=Column{name='id', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=1, defaultValue='null'}, accountType=Column{name='accountType', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}, type=Column{name='type', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}, addressBookAccountType=Column{name='addressBookAccountType', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}}, foreignKeys=[], indices=[Index{name='index_service_accountName_type', unique=true, columns=[accountName, type]}]}
Found:
TableInfo{name='service', columns={principal=Column{name='principal', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0, defaultValue='NULL'}, authState=Column{name='authState', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0, defaultValue='null'}, accountName=Column{name='accountName', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}, id=Column{name='id', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=1, defaultValue='null'}, accountType=Column{name='accountType', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0, defaultValue='null'}, type=Column{name='type', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}, addressBookAccountType=Column{name='addressBookAccountType', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0, defaultValue='null'}}, foreignKeys=[], indices=[Index{name='index_service_accountName_type', unique=true, columns=[accountName, type]}]}
at androidx.room.RoomOpenHelper.onUpgrade(RoomOpenHelper.java:103)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.onUpgrade(FrameworkSQLiteOpenHelper.java:124)
at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:256)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:163)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableSupportDatabase(FrameworkSQLiteOpenHelper.java:92)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.java:53)
at androidx.room.RoomDatabase.inTransaction(RoomDatabase.java:476)
at androidx.room.RoomDatabase.assertNotSuspendingTransaction(RoomDatabase.java:281)
at foundation.e.acc
2020-03-09 10:51:44.113 3486-3506/foundation.e.accountmanager E/davx5: ountmanager.model.ServiceDao_Impl.getByType(ServiceDao_Impl.java:293)
at foundation.e.accountmanager.PackageChangedReceiver$Companion.updateTaskSync(PackageChangedReceiver.kt:36)
at foundation.e.accountmanager.App$onCreate$1.invoke(App.kt:85)
at foundation.e.accountmanager.App$onCreate$1.invoke(App.kt:30)
at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:30)
Relevant screenshots
Solutions
Workaround
Possible fixes