Closed Bug 903157 Opened 11 years ago Closed 11 years ago

NetworkManager doesn't clean up disconnected wifi connections properly

Categories

(Firefox OS Graveyard :: General, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 834573

People

(Reporter: pgravel, Unassigned)

Details

We are seeing routing issues when we get disconnected from a wifi network (keeping wifi enabled, just not connected to any network) and switch over to data call.

Steps to reproduce:
1) have data enabled
2) connect to wifi network, data will disconect
3) access a site (i.e. curl https://www.google.com)
4) Disconnect from wifi by clicking the forget button or simply going out of range of the network, should see data come back on. Wifi must remain be enabled.
5) Try accessing the same site again, host will be unreachable

Now for the strange part
6) Try accessing any other site, it will work. This shows that data is active and available.
7) Then try accessing the previously-unreachable site, and it will succeed.


We were able to resolve this issue by making the follow small change to NetworkManager.js

> diff --git a/dom/system/gonk/NetworkManager.js b/dom/system/gonk/NetworkManager.js
> index a9c43d6..02832fa 100644
> --- a/dom/system/gonk/NetworkManager.js
> +++ b/dom/system/gonk/NetworkManager.js
> @@ -241,9 +241,8 @@ NetworkManager.prototype = {
>              }
>              // Remove extra host route. For example, mms proxy or mmsc.
>              this.removeExtraHostRoute(network);
> -            if (network.type == Ci.nsINetworkInterface.NETWORK_TYPE_MOBILE) {
> -              this.removeDefaultRoute(network.name);
> -            }
> +            this.removeDefaultRoute(network.name);
> +
>              // Abort ongoing captive portal detection on the wifi interface
>              CaptivePortalDetectionHelper.notify(CaptivePortalDetectionHelper.EVENT_DISCONNECT, network);
>              this.setAndConfigureActive();
> -- 


By ensuring the default route is cleaned up when wifi gets disconnected from the network, we no longer see the issue. 
I'm not entirely convinced just yet that this fix is the proper way to resolve this issue and would like to get a better understanding of this code. Why is there a check in place to only clean up NETWORK_TYPE_MOBILE connections?
Is this duplicate of Bug 834573 ? Where do you find it ? mc or b2g18 ?
Can you help to check it ?
Flags: needinfo?(dlee)
This was encountered on b2g18 (leo).

It looks like Bug 834573 would fix this, I will try it out.
Status: NEW → RESOLVED
Closed: 11 years ago
Flags: needinfo?(dlee)
Resolution: --- → DUPLICATE
blocking-b2g: leo? → ---
You need to log in before you can comment on or make changes to this bug.