-
Notifications
You must be signed in to change notification settings - Fork 748
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Android 8 LoD syncing requires app restart and device reboot #11816
Comments
Possibly related to #11556 ? |
@radinamatic what is this error you mention? I don't see it myself. Also, what was the timeline of events right before you rebooted the device? How long do you recall waiting before rebooting? |
I may be miss-interpreting the logs, but this is approximately the time when the server reports the last sync:
When I see more than 5 minutes since the last sync on the device I'm testing, I usually try to interact with it first: make some progress on an assignment, browse another library, try to download a resource, etc. If the syncing does not resume for another up to 5 minutes, I then restart the app, and try some more interactions on it. If even that does not manage to make the syncing resume, it usually means that the server reports more than 15 minutes since the last sync, and then I proceed to reboot the LoD. |
So this type of log message is usually associated with a forced restart of the app:
What follows is a timeline, from what I can gather from the logs:
Now, ideally the 10 minutes that pass during (4) never happen, specifically with the tasks becoming stuck. Although, this had nothing to do with the syncing mechanism itself but rather is more than likely an issue with python-for-android. Based off the logs, it's also something we've already seen leading to our commitment to switch to chaquopy. So I feel confiden this will be resolved by learningequality/kolibri-installer-android#197, which isn't prioritized for 0.16 |
Hi @bjester posting here the logs of a device that stopped syncing to the Windows server and would not resume syncing regardless of the number of times I restarted both the app and the server. Android13.zip The other 2 devices that were also connected to the server are still syncing correctly. |
Another take (user import from scratch) on my side with the same Huawei Android 8 tablet (and this time with the steps to disable battery optimization features, as @rtibbles reminded me), ended the same way as for @pcenov above: only the initial sync was performed, learner device received the class assignments, but all their progress never managed to sync back to the server, despite app restart, device reboot, or several server and VM restarts. |
Adding the logs for an Android phone on which I've installed the latest 0.16.0-rc0 app. Again the app was syncing correctly, then I left it running in the background for several hours and when I picked it up it seemed impossible to resume syncing even after restarting both the server and the app several times. Eventually the app started syncing though. |
The main novel thing I am seeing in here that I've not seen in other logs is this:
@bjester's plan to migrate our Android device detection to use the native Android functionality should presumably resolve this. |
The other notable errors here seem to be due to database contention - either database locked errors on the default database, or other issues with writing on the task database. The other exceptions I am seeing are repeated network connection timeouts and disconnects, which I would assume are caused by server restarts? |
Hi @bjester I've not been able to replicate this syncing stoppage with the build from learningequality/kolibri-installer-android#216 |
Thanks @pcenov! I will go ahead and merge that PR. I'll keep this issue open for a bit to see if @radinamatic wants attempt reproducing it, but this seems like great news 🎉 |
Ah I just noticed your comment @pcenov on that PR. Great news! |
Closing this out as it seems like this has been resolved! 🎉 We can open a new issue if anything comes up in further testing in 0.17 QA. |
Observed behavior
LoD created on a tablet with Android 8 by going through the
on-my-own
setup, and then merging the account with one already on the Windows 7 server. For more than an hour LoD was syncing correctly (on one occasion it seemed to have stalled, but resumed with app restart), but eventually stopped, and app restart was not able to make it resume. Only after the full tablet reboot it eventually started to sync again. According to the Last synced information in Coach page on the server, the culprit might be the error in the LoD logs at 20:45.The other 2 LoDs, with Android 12 & 13 respectively (one of whom has also been created by merging the
on-my-own
account), have been successfully (resuming) syncing for 4-5 days.Errors and logs
Server and LoD logs and dbs
Expected behavior
Syncing should resume without the need to reboot the device.
User-facing consequences
…
Steps to reproduce
…
Context
The text was updated successfully, but these errors were encountered: