Content suggestions are not loading in poor network |
|||||||
Issue descriptionApp Version: 67.0.3369.0 Canary iOS Version: 11.3 beta 5, 10.3.3 Device: iPhone, iPad Precondition: Connect to Gin-3g/2g network Steps to reproduce: 1. Fresh install and launch chrome in Gin-2g network 2. Tap location allow popup in NTP 3. Background the app while content suggestion is loading 4. Open the app 5. Force quit and relaunch app Observed results: Notice that no content suggestions are being loaded Expected results: Content suggestion should load after force quit Number of times you were able to reproduce: 3/5 (could be seen more often on 2G) Bug reproducible after clean install: Yes Bug reproducible after clearing cache and cookies: Yes Bug reproducible on Chrome Mobile on Android: No Bug reproducible on Safari/Firefox: Firefox: NA, Safari: NA Bug reproducible on current stable build (App Version, iOS Version): Yes on M65 Bug reproducible on the current beta channel build (App Version, iOS Version): yes on M66 Link to video/image: https://drive.google.com/file/d/1oJOxDTqNTiDR_LYMOGd0JVJfuJSQStrR/view?usp=sharing
,
Mar 14 2018
,
Mar 15 2018
I think this is related to the way we fetch suggestions. Assigning to zea@ as Zine owner, cc jkrcal@ as you wrote the implementation of the scheduler.
,
Mar 15 2018
I think the request simply time-outs. I see no way to extend the timeout in URLFetcher, maybe I am wrong? It seems the only solution would be to retry the fetch. Currently, we never retry a failed request. This is meant as a server protection (so that traffic does not spike in case of server problems). I can imagine making an exception for time-out but I am not sure if it is a good idea.
,
Mar 20 2018
,
Jul 19
This fell off my radar. Sky, I believe you've looked at our retry logic recently?
,
Jul 19
So far I've been unable to repro. On a M69 local build with GIN-2g. Installing canary now. For the original instructions, does this repro if you don't perform step #3? Watching the video, it seems the NTP spinner stops when the app is opened in #4. But watching the time in the video, there seems to have been only ~7 seconds between when the fetch should have started and completed. That's not long enough to get hit with timeouts. It isn't clear to me why the fetch failed. I feel like #5 is working as intended, we do not currently issue retries for NTP content on failure. Even when Chrome is restarted. Instead we wait a certain amount of time. And there's a button on the screen the user can press to force the fetch. This stance isn't set in stone, we could change it. But I'm hesitant to do something that's risky for the server's health. If we wanted to special case something, I would target scenarios where we don't have any fallback content, which is part of why this is so noticable.
,
Jul 19
Well, I didn't realize this was reported on iOS. Trying on an iPhone, I think I was able to repro it when I backgrounded. When I didn't background, then the UI actually switched from spinner -> there's no content here -> shows content. Which sounds like we miss some UI timer (and the UI timer is maybe a different length thank on Android?), but then the ultimate showing happens when the request finishes. But if we background the app, some part of this goes wrong.
,
Jul 19
The UI timeout seems to be 5 seconds, which is inline with what this doc says, https://docs.google.com/document/d/1BCbkOtiiXZ4xU7DfpDp9yfgGi7IQwUA_MQkzUhE_gUE/edit?hl=en# , but I think that's a red herring. It seems that something about backgrounding Chrome (on iOS) is causing the fetch to fail in some way. The fetch has to complete (though not successfully) so that the scheduler can write the fetch attempt time to prefs, so that subsequent fetches will not occur.
,
Jul 19
Fetches on GIN-2g seem to take 7-10 seconds as a point of reference. |
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by sczs@chromium.org
, Mar 14 2018Owner: gambard@chromium.org
Status: Assigned (was: Untriaged)