User report from 2020.07.26-RC and also coincidentally seen by myself today while caching:
After a while I reached an area, where I know, that I found a cache there but nothing was shown on the map
I moved the map manually, no change.
Remark:
I am far away from sure, whether we have a problem here.
While trying to debug, I did also see communication errors towards the geocaching servers. So maybe they stil throttle requests or have load problems.
I can confirm this behavior. Not a big issue for me, as I often zoom in out, but I recognized that sometimes not all caches are visible bevor zooming.
Possibly related:
- Have map centered to your position and keep moving (in my case riding my bike)
- After a while I reached an area, where I know, that I found a cache there but nothing was shown on the map
This weekend I observed this very same behavior in live map - but with not yet found caches:
This happens for a few weeks now. Reproducable. Most regretfully I can not exactly say till when, cause seemingly you have to be in a region where c:geo had no chance to cache the caches before ... and poss. you have to move faster than walking ... but may even be that while walking the display switches off often enough to trigger the update ...?
The scenario described above definitely worked a few weeks ago, as this is my "normal" way of using c:geo while driving ... but there probably was this problem last weekend, as I think I have observed it there, too.
So maybe they stil throttle requests
Sounds reasonable, but if this would for real be the reason, why does it work on zoom out or display off/on?
Can you enable debug log next time you are riding and remember the time when it happens? Analysing the log might gives clues here as the throttling should be visible in form of denies requests.
Of course I can, but it is possibly not necessary anymore, as I was able to reproduce while sitting at my desk:
Please find attached a logcat, created with "Logcat reader 1.7.1" (as MatLog seems to have disappeared from market)
Have had this scenario on our last tour, and have recorded an "Extended Log":
Hopefully you can see s/th in the log ...
Similar here with
Caches are shown after a zoom-in / zoom-out sequence.
Happened (resp, realized it) again, too, today, with current nightly and offline OSM map.
New: Apart from zoom-out/zoom-in (what I did in the past to force a refresh resp. download of caches around current position) disable/enable live map "helps" as well.
My theory, based on my observations:
Maybe, c:geo a) forgets the old center or the distance moved, or b) just forgets to reload, once the distance has been reached.
This at least would match my observation, that the umber of caches displayed in map become less and less while moving, until there are just sporadically some (perhaps cached or whatever).
Just another random observation I made today:
Caches have been loaded on map (not sure if all...but looked crowded)
I zoomed in one level, some caches disappeared
I zoomed out again, some of the vanished caches appear others still gone.
So not yet a clear view about whats triggering the problem.
@MagpieFourtyTwo If you manage to find a reproducible case we could dive down into the problem. I failed so far, but I also guess its related to maximum loaded caches, internal buffering and updating/merging on next load from server.
Caches have been loaded on map (not sure if all...but looked crowded)
I zoomed in one level, some caches disappeared
I zoomed out again, some of the vanished caches appear others still gone.
A behaviour I also noticed (using stable releases)
I have a user on support mail with similar problems:
-Opening the live map
Sys info:
--- System information ---
Device: SM-G950F (dreamltexx, samsung)
Android version: 9
Android build: PPR1.180610.011.G950FXXU9DTF1
c:geo version: 2020.08.04
Google Play services: enabled - 20.33.15 (100408-330018294)
Low power mode: inactive
Compass capabilities: yes
Rotation vector sensor: present
Orientation sensor: present
Magnetometer & Accelerometer sensor: present
Direction sensor used: rotation vector
Hide caches: -
Hide waypoints: -
HW acceleration: enabled (default state)
System language: de_DE
System date format: dd.MM.yy
Debug mode active: no
System internal c:geo dir: /data/user/0/cgeo.geocaching (10,7 GB free) internal
User storage c:geo dir: /storage/emulated/0/cgeo (10,7 GB free) external non-removable
Geocache data: /storage/emulated/0/Android/data/cgeo.geocaching/files/GeocacheData (10,7 GB free) external non-removable
Database: /data/user/0/cgeo.geocaching/databases/data (48,9 MB) on system internal storage
Fine location permission: granted
Write external storage permission: granted
Geocaching sites enabled:
geocaching.com: Logged in (Anmeldung OK) / PREMIUM
opencaching.de: Logged in (Anmeldung OK)
Geocaching.com date format: dd.MM.yyyy
Installed c:geo plugins: none
--- End of system information
Logcat (which includes an error code 400 and an exception at the end):
--------- beginning of main
10-01 16:59:28.022 10017 10049 D cgeo : [network--3] GCMap.searchPlayMapByViewport(N 48° 40,728' · E 011° 44,139',N 48° 43,665' · E 011° 54,830')
10-01 16:59:28.024 10017 17159 D cgeo : [OkHttp] GET https://www.geocaching.com/api/proxy/web/search?box=48.72775%2C11.735653%2C48.678808%2C11.913835&take=500&asc=true&skip=0&sort=distance&origin=48.703279%2C11.824744&app=cgeo
10-01 16:59:28.024 10017 17165 D cgeo : [OkHttp] GET https://www.opencaching.de/okapi/services/caches/shortcuts/search_and_retrieve?langpref=de%7Cen&oauth_consumer_key=J6M7x5rNz9YFJX38fE9n&oauth_nonce=c8a47e2f9b204933a53be658016e0ca1&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1601564368&oauth_token=UDvnPBjPKJd3TqEsQFL4&oauth_version=1.0&retr_method=services%2Fcaches%2Fgeocaches&retr_params=%7B%22fields%22%3A%20%22code%7Cname%7Clocation%7Ctype%7Cstatus%7Cdifficulty%7Cterrain%7Csize%7Csize2%7Cdate_hidden%7Ctrackables_count%7Cis_found%22%7D&search_method=services%2Fcaches%2Fsearch%2Fbbox&search_params=%7B%22bbox%22%3A%2248.678808%7C11.735653%7C48.727750%7C11.913835%22%2C%22status%22%3A%22Available%7CTemporarily%20unavailable%22%2C%22ignored_status%22%3A%22notignored_only%22%7D&wrap=true&oauth_signature=77SbaRqWjUSaFJfFWxPGM6OV1Fw%3D
10-01 16:59:28.034 10017 17176 D cgeo : [RxNewThreadScheduler-13] Loading GC1ABTQ A93 Elsendorf from DB
10-01 16:59:28.035 10017 17176 D cgeo : [RxNewThreadScheduler-13] Loading GC30KE7 Sankt Anton from DB
10-01 16:59:28.036 10017 17176 D cgeo : [RxNewThreadScheduler-13] Loading GC4FPY8 S(T)EIN oder nicht S(T)EIN from DB
10-01 16:59:28.038 10017 17176 D cgeo : [RxNewThreadScheduler-13] Loading GC6MZ8P Drei ??? Bonus 06 from DB
10-01 16:59:28.039 10017 17176 D cgeo : [RxNewThreadScheduler-13] Loading GC6RVCF Drei ??? #86 from DB
10-01 16:59:28.040 10017 17176 D cgeo : [RxNewThreadScheduler-13] Loading GC6RVCG Drei ??? #85 from DB
10-01 16:59:28.041 10017 17176 D cgeo : [RxNewThreadScheduler-13] Loading GC8MNEA Der Wächter from DB
10-01 16:59:28.042 10017 17176 D cgeo : [RxNewThreadScheduler-13] Loading OC611C A93 Elsendorf from DB
10-01 16:59:28.046 10017 17176 D cgeo : [RxNewThreadScheduler-13] Cache GC30KE7 for id 2 added, geoEntries: 5
10-01 16:59:28.047 10017 17176 D cgeo : [RxNewThreadScheduler-13] Cache GC8MNEA for id 2 added, geoEntries: 6
10-01 16:59:28.047 10017 17176 D cgeo : [RxNewThreadScheduler-13] Cache GC1ABTQ for id 2 not added, geoEntries: 6
10-01 16:59:28.047 10017 17176 D cgeo : [RxNewThreadScheduler-13] Cache GC6MZ8P for id 2 added, geoEntries: 7
10-01 16:59:28.048 10017 17176 D cgeo : [RxNewThreadScheduler-13] Cache OC611C for id 2 not added, geoEntries: 7
10-01 16:59:28.048 10017 17176 D cgeo : [RxNewThreadScheduler-13] Cache GC6RVCG for id 2 added, geoEntries: 8
10-01 16:59:28.048 10017 17176 D cgeo : [RxNewThreadScheduler-13] Cache GC4FPY8 for id 2 not added, geoEntries: 8
10-01 16:59:28.049 10017 17176 D cgeo : [RxNewThreadScheduler-13] Cache GC6RVCF for id 2 added, geoEntries: 9
10-01 16:59:28.049 10017 17176 D cgeo : [RxNewThreadScheduler-13] Layers for id 2 synced. Codes removed: 0, new codes: 5, geoEntries: 9
10-01 16:59:28.053 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint 004FPY8 for id 0 added, geoEntries: 10
10-01 16:59:28.053 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint 014FPY8 for id 0 added, geoEntries: 11
10-01 16:59:28.054 10017 17176 D cgeo : [RxNewThreadScheduler-13] Layers for id 0 synced. Codes removed: 0, new codes: 2, geoEntries: 11
10-01 16:59:28.297 10017 17165 D cgeo : [OkHttp] 200 (273 ms) GET https://www.opencaching.de/okapi/services/caches/shortcuts/search_and_retrieve?langpref=de%7Cen&oauth_consumer_key=J6M7x5rNz9YFJX38fE9n&oauth_nonce=c8a47e2f9b204933a53be658016e0ca1&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1601564368&oauth_token=UDvnPBjPKJd3TqEsQFL4&oauth_version=1.0&retr_method=services%2Fcaches%2Fgeocaches&retr_params=%7B%22fields%22%3A%20%22code%7Cname%7Clocation%7Ctype%7Cstatus%7Cdifficulty%7Cterrain%7Csize%7Csize2%7Cdate_hidden%7Ctrackables_count%7Cis_found%22%7D&search_method=services%2Fcaches%2Fsearch%2Fbbox&search_params=%7B%22bbox%22%3A%2248.678808%7C11.735653%7C48.727750%7C11.913835%22%2C%22status%22%3A%22Available%7CTemporarily%20unavailable%22%2C%22ignored_status%22%3A%22notignored_only%22%7D&wrap=true&oauth_signature=77SbaRqWjUSaFJfFWxPGM6OV1Fw%3D (http/1.1)
10-01 16:59:28.299 10017 10102 D cgeo : [network--8] OC returning 2 caches from search by viewport
10-01 16:59:28.377 10017 17159 D cgeo : [OkHttp] 200 (352 ms) GET https://www.geocaching.com/api/proxy/web/search?box=48.72775%2C11.735653%2C48.678808%2C11.913835&take=500&asc=true&skip=0&sort=distance&origin=48.703279%2C11.824744&app=cgeo (http/1.1)
10-01 16:59:28.382 10017 10049 D cgeo : [network--3] Loading GC6HN59 Drei ??? #21 from DB
10-01 16:59:28.389 10017 10049 D cgeo : [network--3] Loading GC6HN5G Drei ??? #84 from DB
10-01 16:59:28.392 10017 10049 D cgeo : [network--3] Loading GC6HNTY Drei ??? Bonus #02 from DB
10-01 16:59:28.394 10017 10049 D cgeo : [network--3] Loading GC6HNV4 Drei ??? Bonus #03 from DB
10-01 16:59:28.395 10017 10049 D cgeo : [network--3] Loading GC6HNV5 Drei ??? #83 from DB
10-01 16:59:28.398 10017 10049 D cgeo : [network--3] Loading GC6HNV7 Drei ??? #41 from DB
10-01 16:59:28.400 10017 10049 D cgeo : [network--3] Loading GC6HNV9 Drei ??? #40 from DB
10-01 16:59:28.402 10017 10049 D cgeo : [network--3] Loading GC6JMXX Drei ??? #22 from DB
10-01 16:59:28.405 10017 10049 D cgeo : [network--3] Loading GC6JMY3 Drei ??? #23 from DB
10-01 16:59:28.407 10017 10049 D cgeo : [network--3] Loading GC6JMYY Drei ??? #37 from DB
10-01 16:59:28.408 10017 10049 D cgeo : [network--3] Loading GC6MZ85 Drei ??? #81 from DB
10-01 16:59:28.411 10017 10049 D cgeo : [network--3] Loading GC6MZ87 Drei ??? #82 from DB
10-01 16:59:28.412 10017 10049 D cgeo : [network--3] Loading GC8RHKJ 01_FiniPuk´ s Baumwipfelrunde from DB
10-01 16:59:28.415 10017 10049 D cgeo : [network--3] Loading GC8RHMJ 02_FiniPuk´ s Baumwipfelrunde from DB
10-01 16:59:28.417 10017 10049 D cgeo : [network--3] Loading GC8RHNN 03_FiniPuk´ s Baumwipfelrunde from DB
10-01 16:59:28.418 10017 10049 D cgeo : [network--3] Loading GC8RHPG 04_FiniPuk´ s Baumwipfelrunde from DB
10-01 16:59:28.420 10017 10049 D cgeo : [network--3] Loading GC8RHQ6 05_FiniPuk´ s Baumwipfelrunde from DB
10-01 16:59:28.421 10017 10049 D cgeo : [network--3] Loading GC8RHR6 06_FiniPuk´ s Baumwipfelrunde from DB
10-01 16:59:28.423 10017 10049 D cgeo : [network--3] Loading GC8RHW3 11_FiniPuk´ s Baumwipfelrunde from DB
10-01 16:59:28.425 10017 10049 D cgeo : [network--3] Loading GC8RHZ3 12_FiniPuk´ s Baumwipfelrunde from DB
10-01 16:59:28.427 10017 10049 D cgeo : [network--3] Loading GC8T33K Anna Kapelle from DB
10-01 16:59:28.429 10017 10049 D cgeo : [network--3] DataStore.loadCaches([GC8WV9W]) returned no results
10-01 16:59:28.453 10017 10049 D cgeo : [network--3] GCMap: returning 34 caches from search
10-01 16:59:28.455 10017 17177 D cgeo : [RxNewThreadScheduler-14] Filtering out 0 caches: []
10-01 16:59:28.456 10017 17177 D cgeo : [RxNewThreadScheduler-14] Live caches found: 36
10-01 16:59:28.457 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC8RHZ3 for id 3 added, geoEntries: 12
10-01 16:59:28.457 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC8RHMJ for id 3 added, geoEntries: 13
10-01 16:59:28.458 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC6MZ85 for id 3 added, geoEntries: 14
10-01 16:59:28.458 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC6HNV9 for id 3 added, geoEntries: 15
10-01 16:59:28.458 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC6MZ87 for id 3 added, geoEntries: 16
10-01 16:59:28.459 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC6HNV7 for id 3 added, geoEntries: 17
10-01 16:59:28.459 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC6RVCG for id 3 not added, geoEntries: 17
10-01 16:59:28.459 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC6HN59 for id 3 added, geoEntries: 18
10-01 16:59:28.459 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC6RVCF for id 3 not added, geoEntries: 18
10-01 16:59:28.459 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC30KE7 for id 3 not added, geoEntries: 18
10-01 16:59:28.459 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC6MZ8P for id 3 not added, geoEntries: 18
10-01 16:59:28.460 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC8WV9W for id 3 added, geoEntries: 19
10-01 16:59:28.460 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC8YY5R for id 3 added, geoEntries: 20
10-01 16:59:28.460 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC6JMXX for id 3 added, geoEntries: 21
10-01 16:59:28.461 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC8T33K for id 3 added, geoEntries: 22
10-01 16:59:28.461 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC6HN5G for id 3 added, geoEntries: 23
10-01 16:59:28.462 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC8RHKJ for id 3 added, geoEntries: 24
10-01 16:59:28.462 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC8RHR6 for id 3 added, geoEntries: 25
10-01 16:59:28.462 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC6JMY3 for id 3 added, geoEntries: 26
10-01 16:59:28.463 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache OC16172 for id 3 added, geoEntries: 27
10-01 16:59:28.463 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC8RHPG for id 3 added, geoEntries: 28
10-01 16:59:28.464 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC8RHW3 for id 3 added, geoEntries: 29
10-01 16:59:28.464 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC2ZPN3 for id 3 added, geoEntries: 30
10-01 16:59:28.464 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC6HNTY for id 3 added, geoEntries: 31
10-01 16:59:28.464 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC8MNEA for id 3 not added, geoEntries: 31
10-01 16:59:28.465 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC8R0AB for id 3 added, geoEntries: 32
10-01 16:59:28.465 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC6HNV5 for id 3 added, geoEntries: 33
10-01 16:59:28.466 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC6HNV4 for id 3 added, geoEntries: 34
10-01 16:59:28.466 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC6JMYY for id 3 added, geoEntries: 35
10-01 16:59:28.466 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC8RHNN for id 3 added, geoEntries: 36
10-01 16:59:28.467 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC8YY6Q for id 3 added, geoEntries: 37
10-01 16:59:28.467 10017 17177 D cgeo : [RxNewThreadScheduler-14] Cache GC8RHQ6 for id 3 added, geoEntries: 38
10-01 16:59:28.468 10017 17177 D cgeo : [RxNewThreadScheduler-14] Layers for id 3 synced. Codes removed: 0, new codes: 27, geoEntries: 38
10-01 16:59:28.469 10017 17177 D cgeo : [RxNewThreadScheduler-14] searchByViewport: cached=false, results=36, viewport=(N 48° 41,404' · E 011° 47,546',N 48° 42,788' · E 011° 48,384')
10-01 17:00:01.777 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint P08R0AB for id 0 added, geoEntries: 39
10-01 17:00:01.778 10017 17176 D cgeo : [RxNewThreadScheduler-13] Layers for id 0 synced. Codes removed: 0, new codes: 1, geoEntries: 39
10-01 17:00:01.779 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint P08R0AB for id 0 not added, geoEntries: 39
10-01 17:01:26.775 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint 006HNV5 for id 0 added, geoEntries: 40
10-01 17:01:26.775 10017 17177 D cgeo : [RxNewThreadScheduler-14] Layers for id 0 synced. Codes removed: 0, new codes: 1, geoEntries: 40
10-01 17:01:26.778 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint 006HNV5 for id 0 not added, geoEntries: 40
10-01 17:01:42.768 10017 17176 D cgeo : [RxNewThreadScheduler-13] Layers for id 0 synced. Codes removed: 4, new codes: 0, geoEntries: 36
10-01 17:02:53.777 10017 17177 D cgeo : [RxNewThreadScheduler-14] Loading GC1R64N Maria Hilf! from DB
10-01 17:02:53.778 10017 17176 D cgeo : [RxNewThreadScheduler-13] Loading GC8JQVG Train from DB
10-01 17:02:53.781 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint FN8JQVG for id 0 added, geoEntries: 37
10-01 17:02:53.781 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint 021R64N for id 0 added, geoEntries: 38
10-01 17:02:53.782 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint FN8JQVG for id 0 not added, geoEntries: 38
10-01 17:02:53.782 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint P08R0AB for id 0 added, geoEntries: 39
10-01 17:02:53.783 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint P08R0AB for id 0 not added, geoEntries: 39
10-01 17:02:53.783 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint 021R64N for id 0 not added, geoEntries: 39
10-01 17:02:53.784 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint 018JQVG for id 0 added, geoEntries: 40
10-01 17:02:53.784 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint 028JQVG for id 0 added, geoEntries: 41
10-01 17:02:53.785 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint 028JQVG for id 0 not added, geoEntries: 41
10-01 17:02:53.785 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint 038JQVG for id 0 added, geoEntries: 42
10-01 17:02:53.786 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint 038JQVG for id 0 not added, geoEntries: 42
10-01 17:02:53.787 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint 011R64N for id 0 added, geoEntries: 43
10-01 17:02:53.789 10017 17177 D cgeo : [RxNewThreadScheduler-14] Loading GC6MZ4R Drei ??? #51 from DB
10-01 17:02:53.789 10017 17176 D cgeo : [RxNewThreadScheduler-13] Loading GC6MZ4R Drei ??? #51 from DB
10-01 17:02:53.792 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint 016MZ4R for id 0 added, geoEntries: 44
10-01 17:02:53.792 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint 016MZ4R for id 0 not added, geoEntries: 44
10-01 17:02:53.793 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint 011R64N for id 0 not added, geoEntries: 44
10-01 17:02:53.793 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint 048JQVG for id 0 added, geoEntries: 45
10-01 17:02:53.794 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint 048JQVG for id 0 not added, geoEntries: 45
10-01 17:02:53.794 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint 018JQVG for id 0 not added, geoEntries: 45
10-01 17:02:53.795 10017 17177 D cgeo : [RxNewThreadScheduler-14] Layers for id 0 synced. Codes removed: 0, new codes: 3, geoEntries: 45
10-01 17:02:53.795 10017 17176 D cgeo : [RxNewThreadScheduler-13] Layers for id 0 synced. Codes removed: 0, new codes: 6, geoEntries: 45
10-01 17:03:06.777 10017 17176 D cgeo : [RxNewThreadScheduler-13] Layers for id 0 synced. Codes removed: 1, new codes: 0, geoEntries: 44
10-01 17:03:06.780 10017 17177 D cgeo : [RxNewThreadScheduler-14] Layers for id 0 synced. Codes removed: 1, new codes: 0, geoEntries: 44
10-01 17:03:13.790 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint 006MZ4R for id 0 added, geoEntries: 45
10-01 17:03:13.791 10017 17177 D cgeo : [RxNewThreadScheduler-14] Layers for id 0 synced. Codes removed: 0, new codes: 1, geoEntries: 45
10-01 17:03:13.792 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint 006MZ4R for id 0 not added, geoEntries: 45
10-01 17:03:26.781 10017 17176 D cgeo : [RxNewThreadScheduler-13] Layers for id 0 synced. Codes removed: 2, new codes: 0, geoEntries: 43
10-01 17:03:26.785 10017 17177 D cgeo : [RxNewThreadScheduler-14] Layers for id 0 synced. Codes removed: 2, new codes: 0, geoEntries: 43
10-01 17:04:11.785 10017 17177 D cgeo : [RxNewThreadScheduler-14] Loading GC7BDD0 Siegenburg - Turnerhölzl from DB
10-01 17:04:11.789 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint P07BDD0 for id 0 added, geoEntries: 44
10-01 17:04:11.793 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint P07BDD0 for id 0 not added, geoEntries: 44
10-01 17:04:11.795 10017 17176 D cgeo : [RxNewThreadScheduler-13] Layers for id 0 synced. Codes removed: 0, new codes: 1, geoEntries: 44
10-01 17:04:17.777 10017 17177 D cgeo : [RxNewThreadScheduler-14] Layers for id 0 synced. Codes removed: 1, new codes: 0, geoEntries: 43
10-01 17:04:17.777 10017 17176 D cgeo : [RxNewThreadScheduler-13] Layers for id 0 synced. Codes removed: 1, new codes: 0, geoEntries: 43
10-01 17:04:33.775 10017 17177 D cgeo : [RxNewThreadScheduler-14] Loading GC78Q1X Siegenburger Brücken - Bonus from DB
10-01 17:04:33.776 10017 17176 D cgeo : [RxNewThreadScheduler-13] Loading GC78Q1X Siegenburger Brücken - Bonus from DB
10-01 17:04:33.778 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint 0178Q1X for id 0 added, geoEntries: 44
10-01 17:04:33.778 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint 0178Q1X for id 0 not added, geoEntries: 44
10-01 17:04:33.779 10017 17177 D cgeo : [RxNewThreadScheduler-14] Layers for id 0 synced. Codes removed: 0, new codes: 1, geoEntries: 44
10-01 17:04:34.775 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint 0278Q1X for id 0 added, geoEntries: 45
10-01 17:04:34.775 10017 17177 D cgeo : [RxNewThreadScheduler-14] Layers for id 0 synced. Codes removed: 1, new codes: 1, geoEntries: 44
10-01 17:04:34.777 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint 0278Q1X for id 0 not added, geoEntries: 44
10-01 17:04:34.777 10017 17176 D cgeo : [RxNewThreadScheduler-13] Layers for id 0 synced. Codes removed: 1, new codes: 0, geoEntries: 44
10-01 17:04:39.777 10017 17177 D cgeo : [RxNewThreadScheduler-14] Loading GC34WQN Binnendünen Siegenburg from DB
10-01 17:04:39.777 10017 17176 D cgeo : [RxNewThreadScheduler-13] Loading GC34WQN Binnendünen Siegenburg from DB
10-01 17:04:39.779 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint P134WQN for id 0 not added, geoEntries: 45
10-01 17:04:39.779 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint P134WQN for id 0 added, geoEntries: 45
10-01 17:04:39.780 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint 0378Q1X for id 0 added, geoEntries: 46
10-01 17:04:39.780 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint 0378Q1X for id 0 not added, geoEntries: 46
10-01 17:04:39.780 10017 17177 D cgeo : [RxNewThreadScheduler-14] Layers for id 0 synced. Codes removed: 1, new codes: 1, geoEntries: 45
10-01 17:04:39.780 10017 17176 D cgeo : [RxNewThreadScheduler-13] Layers for id 0 synced. Codes removed: 1, new codes: 1, geoEntries: 45
10-01 17:04:40.775 10017 17176 D cgeo : [RxNewThreadScheduler-13] Loading GC6MZ5V Drei ??? #60 from DB
10-01 17:04:40.775 10017 17177 D cgeo : [RxNewThreadScheduler-14] Loading GC6MZ5V Drei ??? #60 from DB
10-01 17:04:40.777 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint PK6MZ5V for id 0 added, geoEntries: 46
10-01 17:04:40.777 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint PK6MZ5V for id 0 not added, geoEntries: 46
10-01 17:04:40.778 10017 17177 D cgeo : [RxNewThreadScheduler-14] Layers for id 0 synced. Codes removed: 1, new codes: 0, geoEntries: 45
10-01 17:04:40.778 10017 17176 D cgeo : [RxNewThreadScheduler-13] Layers for id 0 synced. Codes removed: 1, new codes: 1, geoEntries: 45
10-01 17:04:41.778 10017 17177 D cgeo : [RxNewThreadScheduler-14] Loading GC6R2VW Siegenburg Range from DB
10-01 17:04:41.778 10017 17176 D cgeo : [RxNewThreadScheduler-13] Loading GC6R2VW Siegenburg Range from DB
10-01 17:04:41.781 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint P06R2VW for id 0 added, geoEntries: 46
10-01 17:04:41.781 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint P06R2VW for id 0 not added, geoEntries: 46
10-01 17:04:41.781 10017 17177 D cgeo : [RxNewThreadScheduler-14] Layers for id 0 synced. Codes removed: 0, new codes: 1, geoEntries: 46
10-01 17:04:44.773 10017 17176 D cgeo : [RxNewThreadScheduler-13] Layers for id 0 synced. Codes removed: 1, new codes: 0, geoEntries: 45
10-01 17:04:44.774 10017 17177 D cgeo : [RxNewThreadScheduler-14] Layers for id 0 synced. Codes removed: 1, new codes: 0, geoEntries: 45
10-01 17:04:47.773 10017 17177 D cgeo : [RxNewThreadScheduler-14] Layers for id 0 synced. Codes removed: 1, new codes: 0, geoEntries: 44
10-01 17:04:47.775 10017 17176 D cgeo : [RxNewThreadScheduler-13] Layers for id 0 synced. Codes removed: 1, new codes: 0, geoEntries: 44
10-01 17:04:49.774 10017 17176 D cgeo : [RxNewThreadScheduler-13] Layers for id 0 synced. Codes removed: 1, new codes: 0, geoEntries: 43
10-01 17:04:49.775 10017 17177 D cgeo : [RxNewThreadScheduler-14] Layers for id 0 synced. Codes removed: 1, new codes: 0, geoEntries: 43
10-01 17:04:51.773 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint 0478Q1X for id 0 added, geoEntries: 44
10-01 17:04:51.775 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint 0478Q1X for id 0 not added, geoEntries: 44
10-01 17:04:51.776 10017 17176 D cgeo : [RxNewThreadScheduler-13] Loading GC4ZQGB [LP] Hitlers Autobahnrelikt - Reloaded from DB
10-01 17:04:51.776 10017 17177 D cgeo : [RxNewThreadScheduler-14] Loading GC4ZQGB [LP] Hitlers Autobahnrelikt - Reloaded from DB
10-01 17:04:51.779 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint 004ZQGB for id 0 added, geoEntries: 45
10-01 17:04:51.779 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint 004ZQGB for id 0 not added, geoEntries: 45
10-01 17:04:51.779 10017 17177 D cgeo : [RxNewThreadScheduler-14] Layers for id 0 synced. Codes removed: 0, new codes: 1, geoEntries: 45
10-01 17:04:51.779 10017 17176 D cgeo : [RxNewThreadScheduler-13] Layers for id 0 synced. Codes removed: 0, new codes: 1, geoEntries: 45
10-01 17:04:52.777 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint S14ZQGB for id 0 added, geoEntries: 46
10-01 17:04:52.777 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint S14ZQGB for id 0 not added, geoEntries: 46
10-01 17:04:52.778 10017 17177 D cgeo : [RxNewThreadScheduler-14] Layers for id 0 synced. Codes removed: 0, new codes: 1, geoEntries: 46
10-01 17:04:53.774 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint S04ZQGB for id 0 added, geoEntries: 47
10-01 17:04:53.774 10017 17176 D cgeo : [RxNewThreadScheduler-13] Layers for id 0 synced. Codes removed: 0, new codes: 1, geoEntries: 47
10-01 17:04:53.776 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint S04ZQGB for id 0 not added, geoEntries: 47
10-01 17:04:55.775 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint PK4ZQGB for id 0 added, geoEntries: 48
10-01 17:04:55.776 10017 17176 D cgeo : [RxNewThreadScheduler-13] Layers for id 0 synced. Codes removed: 0, new codes: 1, geoEntries: 48
10-01 17:04:55.777 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint PK4ZQGB for id 0 not added, geoEntries: 48
10-01 17:05:05.775 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint P15XTYN for id 0 added, geoEntries: 49
10-01 17:05:05.777 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint P15XTYN for id 0 not added, geoEntries: 49
10-01 17:05:05.788 10017 17177 D cgeo : [RxNewThreadScheduler-14] Layers for id 0 synced. Codes removed: 0, new codes: 1, geoEntries: 49
10-01 17:05:10.775 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint 005XTYN for id 0 added, geoEntries: 50
10-01 17:05:10.775 10017 17176 D cgeo : [RxNewThreadScheduler-13] Layers for id 0 synced. Codes removed: 0, new codes: 1, geoEntries: 50
10-01 17:05:10.776 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint 005XTYN for id 0 not added, geoEntries: 50
10-01 17:05:12.776 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint S15XTYN for id 0 added, geoEntries: 51
10-01 17:05:12.776 10017 17177 D cgeo : [RxNewThreadScheduler-14] Layers for id 0 synced. Codes removed: 0, new codes: 1, geoEntries: 51
10-01 17:05:12.779 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint S15XTYN for id 0 not added, geoEntries: 51
10-01 17:05:13.775 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint S25XTYN for id 0 added, geoEntries: 52
10-01 17:05:13.776 10017 17176 D cgeo : [RxNewThreadScheduler-13] Layers for id 0 synced. Codes removed: 0, new codes: 1, geoEntries: 52
10-01 17:05:13.776 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint S25XTYN for id 0 not added, geoEntries: 52
10-01 17:05:53.787 10017 17176 D cgeo : [RxNewThreadScheduler-13] Loading GC2YVPM EILEn MIT verWEILEn from DB
10-01 17:05:53.787 10017 17177 D cgeo : [RxNewThreadScheduler-14] Loading GC2YVPM EILEn MIT verWEILEn from DB
10-01 17:05:53.791 10017 17177 D cgeo : [RxNewThreadScheduler-14] Waypoint 032YVPM for id 0 added, geoEntries: 53
10-01 17:05:53.793 10017 17177 D cgeo : [RxNewThreadScheduler-14] Layers for id 0 synced. Codes removed: 0, new codes: 1, geoEntries: 53
10-01 17:05:53.796 10017 17176 D cgeo : [RxNewThreadScheduler-13] Waypoint 032YVPM for id 0 not added, geoEntries: 53
10-01 17:06:18.229 10017 10017 D cgeo : [main] NewMap: onPause
10-01 17:06:18.230 10017 10017 D cgeo : [main] NewMap: onStop
10-01 17:06:18.230 10017 10017 D cgeo : [main] AbtsractCacheOverlay: onDestroy overlay 2
10-01 17:06:18.231 10017 10038 D cgeo : [looper callbacks] RotationProvider: unregistering listener
10-01 17:06:18.231 10017 10017 D cgeo : [main] Layers for id 2 cleared, remaining geoEntries: 48
10-01 17:06:18.231 10017 10017 D cgeo : [main] AbtsractCacheOverlay: onDestroy overlay 3
10-01 17:06:18.231 10017 10017 D cgeo : [main] Layers for id 3 cleared, remaining geoEntries: 17
10-01 17:06:18.235 10017 10017 D cgeo : [main] New map: onSaveInstanceState
10-01 17:06:18.236 10017 10017 D cgeo : [main] NewMap: onDestroy
10-01 17:06:18.257 10017 10017 D cgeo : [main] ResourceBitmapCacheMonitor.release
10-01 17:06:18.257 10017 10017 D cgeo : [main] ResourceBitmapCacheMonitor.clearResourceBitmaps
10-01 17:06:18.329 10017 10017 D cgeo : [main] NewMap: onCreate
10-01 17:06:18.329 10017 10017 D cgeo : [main] ResourceBitmapCacheMonitor.addRef
10-01 17:06:18.350 10017 10017 D cgeo : [main] Connecting brouter failed
10-01 17:06:18.358 10017 10017 D cgeo : [main] NewMap: onStart
10-01 17:06:18.366 10017 10017 D cgeo : [main] AbstractCacheOverlay: construct overlay 0
10-01 17:06:18.366 10017 10017 D cgeo : [main] AbstractCacheOverlay: construct overlay 2
10-01 17:06:18.366 10017 10017 D cgeo : [main] AbstractCacheOverlay: construct overlay 3
10-01 17:06:18.367 10017 10017 D cgeo : [main] RestartLocationPermissionGrantedCallback.execute for 2225
10-01 17:06:18.367 10017 10038 D cgeo : [looper callbacks] RotationProvider: registering listener
10-01 17:06:18.370 10017 10104 D cgeo : [network--10] OC returning 0 caches from search by viewport
10-01 17:06:18.371 10017 10057 D cgeo : [network--4] GCMap.searchPlayMapByViewport(N 48° 45,528' · E 011° 50,155',N 48° 45,528' · E 011° 50,155')
10-01 17:06:18.372 10017 10017 D cgeo : [main] NewMap: onResume
10-01 17:06:18.375 10017 17843 D cgeo : [OkHttp] GET https://www.geocaching.com/api/proxy/web/search?box=48.758792%2C11.835909%2C48.758792%2C11.835909&take=500&asc=true&skip=0&sort=distance&origin=48.758792%2C11.835909&app=cgeo
10-01 17:06:18.620 10017 17840 D cgeo : [RxNewThreadScheduler-15] Loading GC2TYZ1 Die schwarze Madonna von ? from DB
10-01 17:06:18.621 10017 17840 D cgeo : [RxNewThreadScheduler-15] Loading GC2YVPM EILEn MIT verWEILEn from DB
10-01 17:06:18.621 10017 17840 D cgeo : [RxNewThreadScheduler-15] Loading GC34WQN Binnendünen Siegenburg from DB
10-01 17:06:18.622 10017 17840 D cgeo : [RxNewThreadScheduler-15] Loading GC4AGCP Am Platz der verlornen Körner from DB
10-01 17:06:18.622 10017 17840 D cgeo : [RxNewThreadScheduler-15] Loading GC4F75T ADAC-Warte-Cache from DB
10-01 17:06:18.622 10017 17840 D cgeo : [RxNewThreadScheduler-15] Loading GC4KF7V Kapelle from DB
10-01 17:06:18.623 10017 17840 D cgeo : [RxNewThreadScheduler-15] Loading GC4ZABV Bonus - [LP] Hitlers Autobahnrelikt from DB
10-01 17:06:18.623 10017 17840 D cgeo : [RxNewThreadScheduler-15] Loading GC5XTYN RömerBOX from DB
10-01 17:06:18.624 10017 17840 D cgeo : [RxNewThreadScheduler-15] Loading GC6R2VW Siegenburg Range from DB
10-01 17:06:18.624 10017 17840 D cgeo : [RxNewThreadScheduler-15] Loading GC71ZAM Soldatengrab from DB
10-01 17:06:18.625 10017 17840 D cgeo : [RxNewThreadScheduler-15] Loading GC78Q1X Siegenburger Brücken - Bonus from DB
10-01 17:06:18.626 10017 17840 D cgeo : [RxNewThreadScheduler-15] Loading GC7BDD0 Siegenburg - Turnerhölzl from DB
10-01 17:06:18.627 10017 17840 D cgeo : [RxNewThreadScheduler-15] Loading GC7HHFM Licht am Ende .... from DB
10-01 17:06:18.628 10017 17840 D cgeo : [RxNewThreadScheduler-15] Loading GC7HHFW Schöner Ausblick from DB
10-01 17:06:18.629 10017 17840 D cgeo : [RxNewThreadScheduler-15] Loading GC86H55 Castor Fiber from DB
10-01 17:06:18.629 10017 17840 D cgeo : [RxNewThreadScheduler-15] Loading GC8HRB1 Mariensäule Siegenburg from DB
10-01 17:06:18.630 10017 17840 D cgeo : [RxNewThreadScheduler-15] Loading GC8JQVG Train from DB
10-01 17:06:18.631 10017 17840 D cgeo : [RxNewThreadScheduler-15] Loading GC8KQVG Beim Bankerl from DB
10-01 17:06:18.633 10017 17840 D cgeo : [RxNewThreadScheduler-15] Loading GC8YZHP Dorfblick (2K 3) from DB
10-01 17:06:18.638 10017 17840 D cgeo : [RxNewThreadScheduler-15] Cache GC34WQN for id 2 added, geoEntries: 1
10-01 17:06:18.638 10017 17840 D cgeo : [RxNewThreadScheduler-15] Cache GC4AGCP for id 2 added, geoEntries: 2
10-01 17:06:18.639 10017 17840 D cgeo : [RxNewThreadScheduler-15] Cache GC4F75T for id 2 added, geoEntries: 3
10-01 17:06:18.639 10017 17840 D cgeo : [RxNewThreadScheduler-15] Cache GC2TYZ1 for id 2 added, geoEntries: 4
10-01 17:06:18.640 10017 17840 D cgeo : [RxNewThreadScheduler-15] Cache GC4ZABV for id 2 added, geoEntries: 5
10-01 17:06:18.641 10017 17840 D cgeo : [RxNewThreadScheduler-15] Cache GC2YVPM for id 2 added, geoEntries: 6
10-01 17:06:18.646 10017 17840 D cgeo : [RxNewThreadScheduler-15] Cache GC5XTYN for id 2 added, geoEntries: 7
10-01 17:06:18.647 10017 17840 D cgeo : [RxNewThreadScheduler-15] Cache GC78Q1X for id 2 added, geoEntries: 8
10-01 17:06:18.647 10017 17840 D cgeo : [RxNewThreadScheduler-15] Cache GC8YZHP for id 2 added, geoEntries: 9
10-01 17:06:18.648 10017 17840 D cgeo : [RxNewThreadScheduler-15] Cache GC86H55 for id 2 added, geoEntries: 10
10-01 17:06:18.648 10017 17840 D cgeo : [RxNewThreadScheduler-15] Cache GC8HRB1 for id 2 added, geoEntries: 11
10-01 17:06:18.649 10017 17840 D cgeo : [RxNewThreadScheduler-15] Cache GC8JQVG for id 2 added, geoEntries: 12
10-01 17:06:18.649 10017 17840 D cgeo : [RxNewThreadScheduler-15] Cache GC8KQVG for id 2 added, geoEntries: 13
10-01 17:06:18.650 10017 17840 D cgeo : [RxNewThreadScheduler-15] Cache GC6R2VW for id 2 added, geoEntries: 14
10-01 17:06:18.651 10017 17840 D cgeo : [RxNewThreadScheduler-15] Cache GC7HHFM for id 2 added, geoEntries: 15
10-01 17:06:18.652 10017 17840 D cgeo : [RxNewThreadScheduler-15] Cache GC7HHFW for id 2 added, geoEntries: 16
10-01 17:06:18.652 10017 17840 D cgeo : [RxNewThreadScheduler-15] Cache GC7BDD0 for id 2 added, geoEntries: 17
10-01 17:06:18.653 10017 17840 D cgeo : [RxNewThreadScheduler-15] Cache GC4KF7V for id 2 added, geoEntries: 18
10-01 17:06:18.654 10017 17840 D cgeo : [RxNewThreadScheduler-15] Cache GC71ZAM for id 2 added, geoEntries: 19
10-01 17:06:18.654 10017 17840 D cgeo : [RxNewThreadScheduler-15] Layers for id 2 synced. Codes removed: 0, new codes: 19, geoEntries: 19
10-01 17:06:18.657 10017 17840 D cgeo : [RxNewThreadScheduler-15] Waypoint 002TYZ1 for id 0 added, geoEntries: 20
10-01 17:06:18.657 10017 17840 D cgeo : [RxNewThreadScheduler-15] Waypoint P15XTYN for id 0 added, geoEntries: 21
10-01 17:06:18.658 10017 17840 D cgeo : [RxNewThreadScheduler-15] Waypoint 002YVPM for id 0 added, geoEntries: 22
10-01 17:06:18.659 10017 17840 D cgeo : [RxNewThreadScheduler-15] Waypoint 0378Q1X for id 0 added, geoEntries: 23
10-01 17:06:18.660 10017 17840 D cgeo : [RxNewThreadScheduler-15] Waypoint 018JQVG for id 0 added, geoEntries: 24
10-01 17:06:18.661 10017 17840 D cgeo : [RxNewThreadScheduler-15] Waypoint 032YVPM for id 0 added, geoEntries: 25
10-01 17:06:18.661 10017 17840 D cgeo : [RxNewThreadScheduler-15] Waypoint ST4AGCP for id 0 added, geoEntries: 26
10-01 17:06:18.662 10017 17840 D cgeo : [RxNewThreadScheduler-15] Waypoint 005XTYN for id 0 added, geoEntries: 27
10-01 17:06:18.662 10017 17840 D cgeo : [RxNewThreadScheduler-15] Waypoint S15XTYN for id 0 added, geoEntries: 28
10-01 17:06:18.663 10017 17840 D cgeo : [RxNewThreadScheduler-15] Waypoint PK6MZ5V for id 0 added, geoEntries: 29
10-01 17:06:18.664 10017 17840 D cgeo : [RxNewThreadScheduler-15] Waypoint 0478Q1X for id 0 added, geoEntries: 30
10-01 17:06:18.664 10017 17840 D cgeo : [RxNewThreadScheduler-15] Waypoint P07BDD0 for id 0 added, geoEntries: 31
10-01 17:06:18.665 10017 17840 D cgeo : [RxNewThreadScheduler-15] Waypoint S25XTYN for id 0 added, geoEntries: 32
10-01 17:06:18.665 10017 17840 D cgeo : [RxNewThreadScheduler-15] Waypoint PK4AGCP for id 0 added, geoEntries: 33
10-01 17:06:18.666 10017 17840 D cgeo : [RxNewThreadScheduler-15] Waypoint P06R2VW for id 0 added, geoEntries: 34
10-01 17:06:18.666 10017 17840 D cgeo : [RxNewThreadScheduler-15] Waypoint P134WQN for id 0 added, geoEntries: 35
10-01 17:06:18.667 10017 17840 D cgeo : [RxNewThreadScheduler-15] Waypoint 0178Q1X for id 0 added, geoEntries: 36
10-01 17:06:18.668 10017 17840 D cgeo : [RxNewThreadScheduler-15] Waypoint 0278Q1X for id 0 added, geoEntries: 37
10-01 17:06:18.668 10017 17840 D cgeo : [RxNewThreadScheduler-15] Layers for id 0 synced. Codes removed: 0, new codes: 18, geoEntries: 37
10-01 17:06:19.450 10017 17843 D cgeo : [OkHttp] 400 [Bad Request] (1075 ms) GET https://www.geocaching.com/api/proxy/web/search?box=48.758792%2C11.835909%2C48.758792%2C11.835909&take=500&asc=true&skip=0&sort=distance&origin=48.758792%2C11.835909&app=cgeo (http/1.1)
10-01 17:06:19.450 10017 10057 W cgeo : [network--4] parallelCombineActive: swallowing error from connector cgeo.geocaching.connector.gc.GCConnector@67fe2bc
10-01 17:06:19.450 10017 10057 W cgeo : java.lang.RuntimeException: java.io.IOException: request was not successful
10-01 17:06:19.450 10017 10057 W cgeo : at io.reactivex.rxjava3.internal.util.ExceptionHelper.wrapOrThrow(ExceptionHelper.java:46)
10-01 17:06:19.450 10017 10057 W cgeo : at io.reactivex.rxjava3.internal.observers.BlockingMultiObserver.blockingGet(BlockingMultiObserver.java:94)
10-01 17:06:19.450 10017 10057 W cgeo : at io.reactivex.rxjava3.core.Single.blockingGet(Single.java:3645)
10-01 17:06:19.450 10017 10057 W cgeo : at cgeo.geocaching.connector.gc.GCWebAPI.searchMap(GCWebAPI.java:414)
10-01 17:06:19.450 10017 10057 W cgeo : at cgeo.geocaching.connector.gc.GCMap.searchPlayMapByViewport(GCMap.java:133)
10-01 17:06:19.450 10017 10057 W cgeo : at cgeo.geocaching.connector.gc.GCMap.searchByViewport(GCMap.java:105)
10-01 17:06:19.450 10017 10057 W cgeo : at cgeo.geocaching.connector.gc.GCConnector.searchByViewport(GCConnector.java:261)
10-01 17:06:19.450 10017 10057 W cgeo : at cgeo.geocaching.connector.ConnectorFactory.lambda$searchByViewport$0(ConnectorFactory.java:346)
10-01 17:06:19.450 10017 10057 W cgeo : at cgeo.geocaching.connector.-$$Lambda$ConnectorFactory$xlYIDnOeDkjd0u5VT0oIRtPq6Zk.apply(Unknown Source:4)
10-01 17:06:19.450 10017 10057 W cgeo : at cgeo.geocaching.SearchResult.lambda$null$0(SearchResult.java:327)
10-01 17:06:19.450 10017 10057 W cgeo : at cgeo.geocaching.-$$Lambda$SearchResult$S4Ub23vsnqWr5X8nr-1svPn50lg.call(Unknown Source:4)
10-01 17:06:19.450 10017 10057 W cgeo : at io.reactivex.rxjava3.internal.operators.maybe.MaybeFromCallable.subscribeActual(MaybeFromCallable.java:47)
10-01 17:06:19.450 10017 10057 W cgeo : at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5317)
10-01 17:06:19.450 10017 10057 W cgeo : at io.reactivex.rxjava3.internal.operators.maybe.MaybeSubscribeOn$SubscribeTask.run(MaybeSubscribeOn.java:54)
10-01 17:06:19.450 10017 10057 W cgeo : at io.reactivex.rxjava3.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:41)
10-01 17:06:19.450 10017 10057 W cgeo : at io.reactivex.rxjava3.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:28)
10-01 17:06:19.450 10017 10057 W cgeo : at java.util.concurrent.FutureTask.run(FutureTask.java:266)
10-01 17:06:19.450 10017 10057 W cgeo : at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
10-01 17:06:19.450 10017 10057 W cgeo : at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
10-01 17:06:19.450 10017 10057 W cgeo : at java.lang.Thread.run(Thread.java:764)
10-01 17:06:19.450 10017 10057 W cgeo : Caused by: java.io.IOException: request was not successful
10-01 17:06:19.450 10017 10057 W cgeo : at cgeo.geocaching.network.Network.lambda$static$6(Network.java:621)
10-01 17:06:19.450 10017 10057 W cgeo : at cgeo.geocaching.network.-$$Lambda$Network$S1n6XPPgWcknnAjXJlYG-giT7W4.apply(Unknown Source:2)
10-01 17:06:19.450 10017 10057 W cgeo : at io.reactivex.rxjava3.internal.operators.single.SingleFlatMap$SingleFlatMapCallback.onSuccess(SingleFlatMap.java:77)
10-01 17:06:19.450 10017 10057 W cgeo : at io.reactivex.rxjava3.internal.operators.single.SingleCreate$Emitter.onSuccess(SingleCreate.java:68)
10-01 17:06:19.450 10017 10057 W cgeo : at cgeo.geocaching.utils.RxOkHttpUtils$1.onResponse(RxOkHttpUtils.java:48)
10-01 17:06:19.450 10017 10057 W cgeo : at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:504)
10-01 17:06:19.450 10017 10057 W cgeo : ... 3 more
10-01 17:06:19.451 10017 17841 D cgeo : [RxNewThreadScheduler-16] Filtering out 0 caches: []
10-01 17:06:19.451 10017 17841 D cgeo : [RxNewThreadScheduler-16] Live caches found: 0
10-01 17:06:19.453 10017 17841 D cgeo : [RxNewThreadScheduler-16] searchByViewport: cached=false, results=0, viewport=null
10-01 17:06:19.454 10017 10100 D cgeo : [network--7] GCMap.searchPlayMapByViewport(N 48° 42,411' · E 011° 47,373',N 48° 48,644' · E 011° 52,935')
10-01 17:06:19.455 10017 17843 D cgeo : [OkHttp] GET https://www.geocaching.com/api/proxy/web/search?box=48.810732%2C11.789557%2C48.706848%2C11.882257&take=500&asc=true&skip=0&sort=distance&origin=48.75879%2C11.835907&app=cgeo
10-01 17:06:19.458 10017 17857 D cgeo : [OkHttp] GET https://www.opencaching.de/okapi/services/caches/shortcuts/search_and_retrieve?langpref=de%7Cen&oauth_consumer_key=J6M7x5rNz9YFJX38fE9n&oauth_nonce=bb61e821be8f1aa1ad10aaddfb920d6b&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1601564779&oauth_token=UDvnPBjPKJd3TqEsQFL4&oauth_version=1.0&retr_method=services%2Fcaches%2Fgeocaches&retr_params=%7B%22fields%22%3A%20%22code%7Cname%7Clocation%7Ctype%7Cstatus%7Cdifficulty%7Cterrain%7Csize%7Csize2%7Cdate_hidden%7Ctrackables_count%7Cis_found%22%7D&search_method=services%2Fcaches%2Fsearch%2Fbbox&search_params=%7B%22bbox%22%3A%2248.706848%7C11.789557%7C48.810732%7C11.882257%22%2C%22status%22%3A%22Available%7CTemporarily%20unavailable%22%2C%22ignored_status%22%3A%22notignored_only%22%7D&wrap=true&oauth_signature=tN1sX%2B3TPlel9uh6Kdt6ayYUL64%3D
10-01 17:06:19.806 10017 17857 D cgeo : [OkHttp] 200 (348 ms) GET https://www.opencaching.de/okapi/services/caches/shortcuts/search_and_retrieve?langpref=de%7Cen&oauth_consumer_key=J6M7x5rNz9YFJX38fE9n&oauth_nonce=bb61e821be8f1aa1ad10aaddfb920d6b&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1601564779&oauth_token=UDvnPBjPKJd3TqEsQFL4&oauth_version=1.0&retr_method=services%2Fcaches%2Fgeocaches&retr_params=%7B%22fields%22%3A%20%22code%7Cname%7Clocation%7Ctype%7Cstatus%7Cdifficulty%7Cterrain%7Csize%7Csize2%7Cdate_hidden%7Ctrackables_count%7Cis_found%22%7D&search_method=services%2Fcaches%2Fsearch%2Fbbox&search_params=%7B%22bbox%22%3A%2248.706848%7C11.789557%7C48.810732%7C11.882257%22%2C%22status%22%3A%22Available%7CTemporarily%20unavailable%22%2C%22ignored_status%22%3A%22notignored_only%22%7D&wrap=true&oauth_signature=tN1sX%2B3TPlel9uh6Kdt6ayYUL64%3D (http/1.1)
10-01 17:06:19.808 10017 10048 D cgeo : [network--2] Loading OC611B A93 Siegenburg from DB
10-01 17:06:19.818 10017 10048 D cgeo : [network--2] DataStore.loadCaches([OC14AEF]) returned no results
10-01 17:06:19.820 10017 10048 D cgeo : [network--2] DataStore.loadCaches([OCC3E3]) returned no results
10-01 17:06:19.822 10017 10048 D cgeo : [network--2] DataStore.loadCaches([OC137AE]) returned no results
10-01 17:06:19.824 10017 10048 D cgeo : [network--2] DataStore.loadCaches([OC34C7]) returned no results
10-01 17:06:19.826 10017 10048 D cgeo : [network--2] DataStore.loadCaches([OC163BA]) returned no results
10-01 17:06:19.827 10017 10048 D cgeo : [network--2] DataStore.loadCaches([OC163B9]) returned no results
10-01 17:06:19.829 10017 10048 D cgeo : [network--2] DataStore.loadCaches([OCC75C]) returned no results
10-01 17:06:19.831 10017 10017 D cgeo : [main] NewMap: onPause
10-01 17:06:19.831 10017 10048 D cgeo : [network--2] OC returning 10 caches from search by viewport
10-01 17:06:20.214 10017 10017 D cgeo : [main] NewMap: onStop
10-01 17:06:20.214 10017 10038 D cgeo : [looper callbacks] RotationProvider: unregistering listener
10-01 17:06:20.215 10017 10017 D cgeo : [main] AbtsractCacheOverlay: onDestroy overlay 2
10-01 17:06:20.215 10017 10017 D cgeo : [main] Layers for id 2 cleared, remaining geoEntries: 18
10-01 17:06:20.215 10017 10017 D cgeo : [main] AbtsractCacheOverlay: onDestroy overlay 3
10-01 17:06:20.216 10017 10017 D cgeo : [main] Layers for id 3 cleared, remaining geoEntries: 18
10-01 17:06:20.223 10017 10017 D cgeo : [main] NewMap: onDestroy
10-01 17:06:20.227 10017 17843 W cgeo : [OkHttp] Failure (772 ms) GET https://www.geocaching.com/api/proxy/web/search?box=48.810732%2C11.789557%2C48.706848%2C11.882257&take=500&asc=true&skip=0&sort=distance&origin=48.75879%2C11.835907&app=cgeo (java.net.SocketException: Socket closed)
10-01 17:06:20.227 10017 10100 W cgeo : [network--7] parallelCombineActive: swallowing error from connector cgeo.geocaching.connector.gc.GCConnector@67fe2bc
10-01 17:06:20.227 10017 10100 W cgeo : java.lang.RuntimeException: java.lang.InterruptedException
10-01 17:06:20.227 10017 10100 W cgeo : at io.reactivex.rxjava3.internal.util.ExceptionHelper.wrapOrThrow(ExceptionHelper.java:46)
10-01 17:06:20.227 10017 10100 W cgeo : at io.reactivex.rxjava3.internal.observers.BlockingMultiObserver.blockingGet(BlockingMultiObserver.java:89)
10-01 17:06:20.227 10017 10100 W cgeo : at io.reactivex.rxjava3.core.Single.blockingGet(Single.java:3645)
10-01 17:06:20.227 10017 10100 W cgeo : at cgeo.geocaching.connector.gc.GCWebAPI.searchMap(GCWebAPI.java:414)
10-01 17:06:20.227 10017 10100 W cgeo : at cgeo.geocaching.connector.gc.GCMap.searchPlayMapByViewport(GCMap.java:133)
10-01 17:06:20.227 10017 10100 W cgeo : at cgeo.geocaching.connector.gc.GCMap.searchByViewport(GCMap.java:105)
10-01 17:06:20.227 10017 10100 W cgeo : at cgeo.geocaching.connector.gc.GCConnector.searchByViewport(GCConnector.java:261)
10-01 17:06:20.227 10017 10100 W cgeo : at cgeo.geocaching.connector.ConnectorFactory.lambda$searchByViewport$0(ConnectorFactory.java:346)
10-01 17:06:20.227 10017 10100 W cgeo : at cgeo.geocaching.connector.-$$Lambda$ConnectorFactory$xlYIDnOeDkjd0u5VT0oIRtPq6Zk.apply(Unknown Source:4)
10-01 17:06:20.227 10017 10100 W cgeo : at cgeo.geocaching.SearchResult.lambda$null$0(SearchResult.java:327)
10-01 17:06:20.227 10017 10100 W cgeo : at cgeo.geocaching.-$$Lambda$SearchResult$S4Ub23vsnqWr5X8nr-1svPn50lg.call(Unknown Source:4)
10-01 17:06:20.227 10017 10100 W cgeo : at io.reactivex.rxjava3.internal.operators.maybe.MaybeFromCallable.subscribeActual(MaybeFromCallable.java:47)
10-01 17:06:20.227 10017 10100 W cgeo : at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5317)
10-01 17:06:20.227 10017 10100 W cgeo : at io.reactivex.rxjava3.internal.operators.maybe.MaybeSubscribeOn$SubscribeTask.run(MaybeSubscribeOn.java:54)
10-01 17:06:20.227 10017 10100 W cgeo : at io.reactivex.rxjava3.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:41)
10-01 17:06:20.227 10017 10100 W cgeo : at io.reactivex.rxjava3.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:28)
10-01 17:06:20.227 10017 10100 W cgeo : at java.util.concurrent.FutureTask.run(FutureTask.java:266)
10-01 17:06:20.227 10017 10100 W cgeo : at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
10-01 17:06:20.227 10017 10100 W cgeo : at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
10-01 17:06:20.227 10017 10100 W cgeo : at java.lang.Thread.run(Thread.java:764)
10-01 17:06:20.227 10017 10100 W cgeo : Caused by: java.lang.InterruptedException
10-01 17:06:20.227 10017 10100 W cgeo : at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1022)
10-01 17:06:20.227 10017 10100 W cgeo : at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1328)
10-01 17:06:20.227 10017 10100 W cgeo : at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:232)
10-01 17:06:20.227 10017 10100 W cgeo : at io.reactivex.rxjava3.internal.observers.BlockingMultiObserver.blockingGet(BlockingMultiObserver.java:86)
10-01 17:06:20.227 10017 10100 W cgeo : ... 18 more
10-01 17:06:20.227 10017 17841 W cgeo : [RxNewThreadScheduler-16] LiveCachesOverlay.startLoadtimer.start
10-01 17:06:20.227 10017 17841 W cgeo : java.lang.RuntimeException: java.lang.InterruptedException
10-01 17:06:20.227 10017 17841 W cgeo : at io.reactivex.rxjava3.internal.util.ExceptionHelper.wrapOrThrow(ExceptionHelper.java:46)
10-01 17:06:20.227 10017 17841 W cgeo : at io.reactivex.rxjava3.internal.observers.BlockingMultiObserver.blockingGet(BlockingMultiObserver.java:89)
10-01 17:06:20.227 10017 17841 W cgeo : at io.reactivex.rxjava3.core.Single.blockingGet(Single.java:3645)
10-01 17:06:20.227 10017 17841 W cgeo : at cgeo.geocaching.SearchResult.parallelCombineActive(SearchResult.java:336)
10-01 17:06:20.227 10017 17841 W cgeo : at cgeo.geocaching.connector.ConnectorFactory.searchByViewport(ConnectorFactory.java:346)
10-01 17:06:20.227 10017 17841 W cgeo : at cgeo.geocaching.maps.mapsforge.v6.caches.LiveCachesOverlay.download(LiveCachesOverlay.java:104)
10-01 17:06:20.227 10017 17841 W cgeo : at cgeo.geocaching.maps.mapsforge.v6.caches.LiveCachesOverlay.access$100(LiveCachesOverlay.java:28)
10-01 17:06:20.227 10017 17841 W cgeo : at cgeo.geocaching.maps.mapsforge.v6.caches.LiveCachesOverlay$LoadTimerAction.run(LiveCachesOverlay.java:83)
10-01 17:06:20.227 10017 17841 W cgeo : at io.reactivex.rxjava3.core.Scheduler$PeriodicDirectTask.run(Scheduler.java:566)
10-01 17:06:20.227 10017 17841 W cgeo : at io.reactivex.rxjava3.core.Scheduler$Worker$PeriodicTask.run(Scheduler.java:513)
10-01 17:06:20.227 10017 17841 W cgeo : at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:65)
10-01 17:06:20.227 10017 17841 W cgeo : at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:56)
10-01 17:06:20.227 10017 17841 W cgeo : at java.util.concurrent.FutureTask.run(FutureTask.java:266)
10-01 17:06:20.227 10017 17841 W cgeo : at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
10-01 17:06:20.227 10017 17841 W cgeo : at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
10-01 17:06:20.227 10017 17841 W cgeo : at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
10-01 17:06:20.227 10017 17841 W cgeo : at java.lang.Thread.run(Thread.java:764)
10-01 17:06:20.227 10017 17841 W cgeo : Caused by: java.lang.InterruptedException
10-01 17:06:20.227 10017 17841 W cgeo : at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1022)
10-01 17:06:20.227 10017 17841 W cgeo : at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1328)
10-01 17:06:20.227 10017 17841 W cgeo : at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:232)
10-01 17:06:20.227 10017 17841 W cgeo : at io.reactivex.rxjava3.internal.observers.BlockingMultiObserver.blockingGet(BlockingMultiObserver.java:86)
10-01 17:06:20.227 10017 17841 W cgeo : ... 15 more
10-01 17:06:20.233 10017 10017 D cgeo : [main] ResourceBitmapCacheMonitor.release
10-01 17:06:20.233 10017 10017 D cgeo : [main] ResourceBitmapCacheMonitor.clearResourceBitmaps
10-01 17:06:25.088 10017 10017 I cgeo : [main] Added '/storage/emulated/0/Android/data/cgeo.geocaching/files' as available external dir
10-01 17:06:27.506 10017 10038 D cgeo : [looper callbacks] LocationProvider: stopping location requests
This is in fact the very same observation I made.
Corresponding LogCats see my previous posting.
I just used Lockito (Nice app BTW) to let the live map follow me while virtually driving.
I do see some problem:
-> This makes me think, that there is a failure in updating the screen rather than loading new caches from the server.
Remark:
Of course there might be other problems (as seen in the stack trace above) which can produce errors, but we can probably not fix those. But if there is (additionally) a problem in our code preventing loaded caches from being shown on the map, it could explain why quite many users claim this problem.
Thx for the link - just knew Fake GPS. which is sometimes hard to use, not even thought of trying to simulate movements.
As for your observations: Can not yet approve, but at least kind of affirm your assumption regarding the network side, as right now I remember that the eventually empty map gets always cluttered with caches really fast after un- and re-setting Enable live
(which is my "FixIt"), even in areas with pretty poor network coverage. Next time will even try to disable mobile data prior to un- and re-setting Enable live
.
An affected user tested this problem while driving his daily route and reported, that it only appears on all OSM types (online and offline) but both Google variants are OK.
If this is true, it might help to track down the issue as it probably means, that is rather the map code than any communication related code.
@moving-bits
Do you remember when we discussed and you implemented the caching mechanism to reduce network requests. Maybe you can take a look if anything in Newmap blocks the caches retrieved from network or cache to be drawn on the map, There could be a difference between Google and Newmap at this point.
This issue is bothering many users at this moment. Let me try to summarize what we know:
Conclusions (at least from my perspective):
@moving-bits
See my question above:
Is there any difference in the caching mechanism or in how OSM maps are updated/drawn depending on "follow my position" or manual movement?
@Narrat @MagpieFourtyTwo
When this problems appear for you:
Do also the already shown caches suddenly vanish when the problem appears or is it like, that the shown caches are moving out of view but no new ones appear?
The latter: Just no new caches will be shown.
I would consider this a "drawing problem", too, as new ones are shown immediately after the actions, @Lineflyer listed above (plus "disable/enable live"), even when data connection has been switched off prior to performing one of these actions.
Found the cause and will provide a PR soon.
On release
I presume?
Yes please, unless you are unsure about possible impacts or regressions. In that case we could use master
to enable a beta phase.
But preferably for our users would be to release it as a bug fix rather short termed.
Cause of this problem is:
Class is LiveCachesOverlay
I changed this so that previous viewport is only set if update is triggered. But then a new problem arises: when simulating higher speed (e.g. a vehicle moving) this triggers an update almost EVERY cycle. This again results in HTTP429 ("too many requests") by gc.com.
Thus I added a grace period: movement-based updates will only be triggered at most every 10 seconds. Hope that's fine? (I tried 5 seconds before, this still results in occasional HTTP429)
Created PR #9352
Also checked again in code:
If I am not mistaken, in currently released version of c:geo, in order to trigger refresh of caches based on movement, one has to move more than 1/4 of it's viewport in 250ms (and yes, this is easier to reach if you are zoomed in very much and probably not realistically reachable if you are zoomed out a bit). You might use this information for verification of this bug on you devicese
As the last implementer of this code, I don't fully buy your analysis.
The intention is, to request caches in an area which is 25% larger than the visible viewport on every side and therefore an update is only necessary if the viewport was moved by 1/4.
This is checked every 250ms, but if no move was detected, the reference for the next comparison should not change, so the time-span that the movement takes shouldn't doesn't matter.
Unfortunately I didn't have time to look at the code (and changes to it) for quite some time, but I think the logic still holds.
If there is in addition a necessity to rate-limit the request to one of the connectors, this is something I would rather solve there.
Let us be very sensible when it comes to request frequency towards the server, so we should carefully evaluate the changes.
@rsudev I remember this strategy and it should still be included in principle, but some months ago @moving-bits performed changes in this area to improve the caching mechanism to further reduce requests towards the server.
@Lineflyer I am all in for not unnecessarily overloading any of the servers we support.
BTW, I do not consider using the live map while driving a sensible use case...
As the last implementer of this code, I don't fully buy your analysis.
Hi @rsudev my analysis might be false, because I saw the code today the very first time, but it seems to be backed by tests I made.
Here is the core relevant piece of code. This is the run() method executed every 250ms to refresh the cache overlay
My core finding is that in line 88, previoosViewport
is set to viewportNow
even if moved
is not true (and thus an update of the caches was not triggered). This means that, in order to trigger a cache refresh based on movement alone (assuming no rezooming happened) and assuming that there is no download currently in progress, mapMoved()
has to be true when comparing the current viewport with exactly the viewport of the last cycle 250ms ago. Ergo: one has to move 1/4 of the viewport in 250ms to trigger this refresh.
There might be an error in my analysis of course, but up to now I did not find it.
Indeed a very simple manual test seems to proof the finding of @eddiemuc
Quite soon you end up with no caches on the map until you zoom or move more than 1/4
On GMaps it is working
@rsudev
I do use it on my bike which pretty easily triggers this issue. And I consider it a sensible use case as a single request could be enough to populate the map for half an hour cycling if we do it in a clever way.
@eddiemuc To be a little bit more save concerning our server usage: Could you compare your proposed fix with the code we use for GMaps? Because as far as we know we do not have this problem in that map and we also know, that Groundspeak did not complain about that amount of requests currently generated by c:geo production versions (assuming a relatively large percentage might use Google Maps).
assuming a relatively large percentage might use Google Maps
Just wondered how you come to this assumption.
Cause most of at least my GC friends are using offline OSM maps ... and some OSM online ... until they find one to explain how this offline thingy is working ... ;)
But in fact I don't know a single one who uses GM for caching, as it has no trails at all.
And GSat is eating way too much data plan.
My core finding is that in line 88,
previoosViewport
is set toviewportNow
even ifmoved
is not true (and thus an update of the caches was not triggered). This means that, in order to trigger a cache refresh based on movement alone (assuming no rezooming happened) and assuming that there is no download currently in progress,mapMoved()
has to be true when comparing the current viewport with exactly the viewport of the last cycle 250ms ago. Ergo: one has to move 1/4 of the viewport in 250ms to trigger this refresh.
If that is the case, than it is clearly a bug (introduced by me initially or later) which needs to be remedied. I am not sure why a rework of the logic as such should be necessary.
@eddiemuc To be a little bit more save concerning our server usage: Could you compare your proposed fix with the code we use for GMaps?
I did it this morning. For GMaps (if I just follow a track, so I have continuous movement but no other update triggers like e.g. rezoom) it seems to refresh every second.
(@rsudev I also see that for GMap there is almost identical code doing this, except that here the previousViewport
is only set to viewportNow
when moved is true, and there is an additional safeguard of 1 second there. This is in CgeoMap.LoadTimerAction
if you're interested)
But at GMaps my use case leads also to the same HTTP429 ("too many requests") exceptions!
To be fair, my test case is unrealistic: I asked the emulator to follow a route from one city to the other via car and replayed that route at 5-times-speed. This shows that such frequent update calls to the servers, although possible by the code, are not likely to occur in real-life. In real-life (in GMaps and after the fix also in OSM/Offline) an update call will happen whenever you travveled approx. 1/4 of your viewport (depending on your zoom level this might be more or less distance). Still I think we should protect c:geo against issuing too many server calls resulting in HTTP 429.
Should I increase the safeguard timespan to 10 seconds for GOogle Maps as well?
I'm of course not that deep in the implementation details and don't really know about the really needed intervals,
but following the thread as an external observer I ask myself every now and then if timers and distances that short are really necessary ...?
Maybe I'm on the wrong track, but what should happen in 250 ms? Even with 200 km/h you're moving just 14 m per 250 ms - so I wonder if this time and distance is really worth an update request (even if it's not reaching the server, because the viewport has (of course) not changed that much)? And, given the (admittedly not really sensefull, but possible) case, one has zoomed to 50 m, moving with 200 km/h, thus really crossing the limit every single (or second) trigger - how many caches would a new request will bring, with regard to his distance made in the meantime, which is in fact just a fraction of the minimum distance of 161 m between caches ...?
My thoughts: Wouldn't it be better, to decrease a) the timer and b) the frequency of server requests and OTOH a) increase the number of caches requested (thus increasing the request area) and b) implementing some look ahead logic ...? So, in fact redesign the update strategy, art least the one regarding movement of viewpoint?
In a first brain storm I would suggest ...
Thus I added a grace period: movement-based updates will only be triggered at most every 10 seconds.
Will this also affect manual movements of the map or only when the map is centered to the GPS position? For manual movements 10s are way too much and will strongly affected the usability of the live map! But for position tracking 10s or even more should be fine...
But as this fix seems to be a bit more complicated, testing it at nightly/beta should be the way to go IMHO
Rereading the thread I have the impression that I have been misunderstood a bit. I did for sure not want to state that there is no bug in the current implementation.
But I don't see the necessity of a redesign, in this place, just the need to fix the issue, that the previousViewport is updated when it shouldn't (the current GMaps code emerged from the same base implementation as the NewMap, which was the first map implementation in c:geo).
I would also suggest to research in the source history when this bug was introduced and why, in order to understand if the fix would introduce another issue again.
Regarding the intervals, it is about responsiveness. If you do a few quick swipes to explore a region, I would be surprised if you hit the gc.com rate limit (and please also don't forget that we currently support eight other geocaching platforms as well).
@MagpieFourtyTwo as @rsudev correctly stated, the 250ms is necessary because this span defines the minmal reaction time of c:geo as a response for any user action. If we would e.g. increase the cycle time to 5s, then e.g. after a manual rezoom of the map it would take up to 5s until cache refresh is started. I am with @rsudev that we should not redesign this logic.
@fm-sys this will also impact manual movement. At this place in code I think we cannot distinguish "manual" movements from "automated" movements. The first manual movement will trigger refresh immediately. If there is a second one within the next 10s, update will be triggerd for this second movement only after 10s.
@rsudev I am with you that we should not touch the current design in total. But I think there is a flaw which can result in too many server requests issued, also in the old code. This I would address. Doing this currently with a simple time limit is because this is for release (so changes should stay simple). Overall I could think of more intelligent logics to do that, e.g. an increasing amount of waiting time if too many movement are registered (first 1s, then 2s, then 5s, then 10s), same for zoom btw (if a user zooms in/out very fast, this might also trigger too many server requests). In general, even if other services than gc.com don't issue HTTP429, we should do our best to restrict the number of calls to them
For those interested: Problem was introduced with 72ae3c170f2457e5fc9946f7ee45b847cfc9bc99
on 10.5.20
In order not to mix up different things:
I think that is the cleanest solution for now.
When searching caches via the life map, no one wants to wait 10 seconds until caches are loaded. This is (most of the time 😉) working with the current implementation and will raise much negative feedback if we change it as far as I guess.
When searching caches via the life map, no one wants to wait 10 seconds until caches are loaded. This is (most of the time 😉) working with the current implementation and will raise much negative feedback if we change it as far as I guess.
@Narrat @MagpieFourtyTwo
When this problems appear for you:
Do also the already shown caches suddenly vanish when the problem appears or is it like, that the shown caches are moving out of view but no new ones appear?
I noticed both cases. So maybe two different issues. But before I look further into reproducing the vanishing behaviour, I wait what happens with the currently discussed issue and the fix for it included in a release :)
I know that this GIF will probably not be very helpful (oh, and sorry that I had to crop and pixel out most of the screen) but just want to share the discovery I have made. It is not really reproducible, but sometimes even caches that are stored offline can disappear...
@fm-sys Right. But this is a different problem. There is still a bug in the synchronization of the caches in an area and the layerlist in the new map which I couldn't yet nail down.
The "offline caches are missing" bug is still there. Reopen or create a new issue for it?
The "offline caches are missing" bug is still there. Reopen or create a new issue for it?
Since this issue already has a lot of replies in regard to the other issue, it's probably easier to open a separate issue for this.