microg / microg/GmsCore

Fused location provider blocks, despite accurate GPS location

Open
#3,035 10 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Java
Stars
14.6k
Forks
3.2k
Avg merge
12d 11h
Merged PRs (30d)
4

Description

(originally opened here)

Describe the bug

Occasionally on /e/OS the fused location will take a very long time to update, despite the device having an accurate GPS location. My understanding of the Google fused location implementation is that fused location will always prefer GPS if the GPS is active for any reason, and I it seems wrong to me that the location fusing is blocked (probably by a slow network call) if the GPS is active and has an accurate fix.

To Reproduce
We have had issues reproducing this bug but I strongly suspect that it's due to latency in the network location API calls, so I would start by artificially introducing latency there to see what happens to the fused provider.

Expected behavior
I would expect the fused provider to emit GPS location updates despite the lack of accurate network location.

Screenshots
I'm having some issues with the attachment upload but there's a video here:

https://drive.google.com/file/d/1c-byuhu9xTzSe1CMrnIm2YsRG1_VpqsN/view?usp=sharing

In this video, the device is on a moving train as you can see from the GPS provider, but the fused provider gave a stale location from many minutes ago.

System
Android Version: 13
Custom ROM: e/OS 3.0.1

Additional context

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the fused location provider and its network location API calls, then reproduce the issue by introducing artificial latency in those calls while GPS has an accurate fix. Done means the fused provider emits current GPS updates instead of retaining a stale network-derived location.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, java
Domain
mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.