-
-
Notifications
You must be signed in to change notification settings - Fork 366
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
Quest is asked again immediately after solving it #4258
Comments
I've also looked at keepright, osmose, and OSMI to check if there are duplicate/invalid OSM data, but it does not seem so (only warnings are minor and seemingly unrelated, e.g. "no maxspeed mapped on this road" or "nearby building should have address related to this street") |
One additional minor thing that I've noticed (which I don't know if it is related - and I don't recall seeing it in previous manifestations of this bug) after videorecording this bug is that pressing GPS button in SC stopped working - i.e. it did not position map to current location, just acted as dummy button. At the same time GPS seemed to work fine, and doing same action in OsmAnd positioned the map there without any problems. I have video of that too if you find it might be related (or if you find it unrelated, but want it as a separate bug report anyway). |
I looked closer through this issue, but could not find anything. I tried to reproduce the issue with that exact same cycleway. No result, wasn't able to. I noticed that this and the last issue was always about the cycleway quest only. So maybe it is an issue in the
The other relatively plausible explanation - that for some reason, the map pins were not updated - has been proven wrong because when clicking on the quest pin, the quest is fetched from the database. If it would not exist anymore in the database, the quest would not be opened (the pin appear to not be clickable). |
Yeah, that behaviour is consistent with my previous tests in #4124 (comment) where I also immediately (before uploading answer) tried to reproduce the bug on the another phone on that same way and failed. So it does not seem to be reproducible-at-will, but only happens sometimes. I dislike such undeterministic bugs...
Time is correct, yes (at worst it might be several seconds wrong). It's my main phone so I'd notice if a hour or day (much less a year!) was wrong.
So far, I've only noticed it in that quest, yes. That however might be because it is more noticeable because it throws suspicious
OK, I'll try that.
If I understand you correctly; I did that in the previous attempt (albeit in older SC version), and it was not reproducible #4086 (comment):
But I will try that again with new SC, when the bug strikes next time. |
You could trace what happens after the quest is solved: First In particular, detailed logging of |
New datapoint: the bug happened again (in my 45.2 based fork). I solved cycleway quest, and got immediately presented with I then switched out to web browser (to lookup what should I check exactly, because I didn't remember 😄) and when I switched back to SC the cycleway quest was gone, with next-in-line I'll try to do manual refresh next time to see how it handles, but I wanted to share this if it gives more clues. |
Had this with seating quest. |
what SC version was that @HolgerJeromin ? (i.e. still hoping that caching rewrite in |
It was v48.0-alpha1 sorry for that :-) |
If anything, the caching will increase the potential for (such) heisenbugs, which is why @Helium314 added those extensive unit tests. |
I sometimes get this and similar issues where I'm immediately asked the same question twice too. I think it happens if StreetComplete is syncing data while I answer quests, sometimes. Usually when I'm on 3G/HSPA with a poor signal and the sync is taking a long time. |
Recently I was using StreetComplete 49.2 as a front passenger on a motorway. I answered a lot of bus stop quests and this bug happened several times. Sometimes there was a noticable lag when answering the quest the first time which was shown again later on. In some cases the quest was not shown again immediately and I was able to answer another quest on the same element before the same quest was shown again (e.g. bus stop shelter -> bench -> shelter again). When checking the tagging via undo, the second answer to the same quest on the same element additionally had the checkdate tag set. I don't remember if this was the case but maybe a download of OSM data was running in the background every time this occured as it's more likely to have a download running when moving fast. Maybe another factor could be the fast answering of quests, as the answers were almost always the same. |
Yep, my experience seems exactly the same as the above. I usually get it on faster roads too, and I think it is when it's syncing while I'm answering quests. |
I just had this for the road smoothness quest: https://www.openstreetmap.org/way/545067568/history I was standing in the same place and answered "good" 4 times, then stopped because the quest still didn't disappear. Re-scanning for quests did not help. 2 hours later and the quest is now gone. |
I reported similar behaviour in #4662 so it seems more likely to occur when the app is busy communicating with the net. However, something similar happened to me while being off line: after answering a surface quest for a track, it ask the surface quest again. Answering it the second time, the app asked if I was sure because what I answered was different from what was the value before, which I am sure was a mistake to ask because I entered the same answer twice. I 'm actually pretty sure it was asked for a track that already had the surface tagged months before (by me), so the quest shouldn't have shown up at all. Maybe that the "are you sure?" message popped up is a clue? |
I wonder if we are on the wrong track here. If it also happens offline, maybe there is a race condition in the |
And it would explain why re-scanning for quests doesn't help. Even if the base OSM data is fine, if the So: Are you sure it could be reproduced while being offline, @rhhsm? Or did you just have a bad connection or similar? |
I'll pay more attention next time it happens. Are there specific actions I could do to help find the source of the problem? "re-scanning for quests" certainly won't work when offline :) |
Finding whether it is reproducible while offline would already be a big help, because this precludes a lot of other things as cause for this bug. Maybe notice how big is the number of not-uploaded changes. Also, with offline I mean really offline, i.e. no download of new quests can happen while solving quests. Not the "manual upload" mode. |
I just had this issue. It was in EE, but fits the descriptions here, so it's most likely the same:
|
I haven't had this issue for a little while now, has it potentially been fixed? |
I had it on v52.0 of SC for some tactile paving or crossing button or both despite answering many times times, on 4G rather than my usual offline/WiFi situation. |
This comment was marked as resolved.
This comment was marked as resolved.
How to reproduce the issue:
What is happening: Now there are no details provided by the log, and I'm not 100% sure what's going on. Once the quest is not in the database, but in |
To summarize, creating the quests in Making this code all synchronized would mean that the user effectively cannot make any edits while downloading, which will feel like the app is not responding. So, there'd need to be something like a modal downloading window to notify users of what is happening. However, this is not desirable. The only solution that comes to my mind right now would be to keep track of the map data that is edited (i.e. anything that is passed to
(What the pseudocode disregards here but should be regarded in proper implementation: several onReplacedForBBox could be executed in parallel; the two functions could be executed on different threads -> use atomic? / synchronization when dealing with the |
Better pass a copy of |
This works for me, though it may miss something: Helium314@cae27b4 |
I'd like to mention #4662 again here. Now that I've recently switched to a provider plan including mobile data, the issue of not being able to use the app for an annoyingly long time because an update is taking place occurs more frequently. I now switch off mobile data and wifi before starting to use SC during a survey to avoid having this issue, knowing this is against the idea of always working with up-to-date quests. Just saying that this is a weakness of SC, without having a good idea about solving it in an elegant way (I don't have much IT expertise, and admit that the "emergency stop" button I proposed before is not very elegant). |
Ideally disabling internet connection would cancel donwload, but that doesn't work. What does work for me is stopping VPN. But most people don't use VPN, so that's barely useful advice... |
Could updating the quests be limited to times when the phone's screen is off? Surely the user is not using the phone at those times, and wouldn't be bothered by the update taking place. |
I noticed that this should rather be solved one level higher, at |
…all onReplacedForBBox to listeners completed for updates that happened while the latter was being executed (fixes #4258)
MapDataWithEditsSource: call onUpdated to listeners again after the call onReplacedForBBox to listeners completed for updates that happened while the latter was being executed (fixes #4258)
This is again reproduced #4124 (and before that, #4086). See them for more details and history of the problem.
I've managed to do both things requested in #4124 (comment):
How to Reproduce
no
at2022-07-29
about14:04 CEST
(or minute before).14:04 CEST
that I'm asked if the situation is still the sameundo
menu that there is recorded answerAdded cycleway:right=no
no
to theis this still the cycleway situation here?
displayed separately on the map
to theis this still the cycleway situation here?
(note that this answer does not match reality, but I choose different answer than
no
to be sure to get multiple changes in changeset, so I can prove the bug is not only in my mind 😄)undo
menu that the new answer generatedUpdated to cycleway:right=separate
undo
menu that there is also still recorded old answerAdded cycleway:right=no
14:05/14:06 CEST
)Video:
small_SVID_20220729_140434_1.mp4
I expect it is this changeset: https://www.openstreetmap.org/changeset/124228420#map=18/46.41630/16.69096
and this way specifically:
https://www.openstreetmap.org/way/670948488/history (
v8
andv9
)Expected Behavior
is this still the cycleway situation here?
quest should not have triggered, as the cycleway quest was answered seconds (and not months/years) ago.Versions affected
45.0-based (my fork), Android 10 (on Huawei P30 Pro).
But note previous repetition of bug that looked exactly the same was in vanilla mainstream SC (not in my fork), so I hope the bug is the same, and so that this bugreport still helps.
The text was updated successfully, but these errors were encountered: