Closed Bug 1058282 Opened 10 years ago Closed 10 years ago

[MMS] User does not receive a pop up asking to activate data to send message after disabling Wifi and Data

Categories

(Firefox OS Graveyard :: RIL, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(blocking-b2g:2.1+, firefox33 wontfix, firefox34 fixed, firefox35 fixed, b2g-v1.4 wontfix, b2g-v2.0 verified, b2g-v2.1 verified, b2g-v2.2 verified)

VERIFIED FIXED
2.1 S6 (10oct)
blocking-b2g 2.1+
Tracking Status
firefox33 --- wontfix
firefox34 --- fixed
firefox35 --- fixed
b2g-v1.4 --- wontfix
b2g-v2.0 --- verified
b2g-v2.1 --- verified
b2g-v2.2 --- verified

People

(Reporter: jthomas, Assigned: hchang)

Details

(Whiteboard: [2.1-flame-test-run-1])

Attachments

(7 files, 1 obsolete file)

Attached image Message not sent
Description:
After disabling Data and Wifi the user will not receive a pop up asking to activate data to send the message.

Repro Steps:
1) Update a Flame to 20140825040204
2) Select Settings
3) Select Wi-Fi
4) Disable Wi-Fi
5) Select Cellular & Data.
6) Select valid Sim Card
7) Disable Data Connection
8) Compose a text message with an attachment.
9) Send message to contact.

Actual: After attempting to send an SMS the user receives a message saying "Message not sent, There was a problem sending the message. Please try again." The message is slightly different on the Flame 2.1 compared to the rest of the devices.

Expected: It is expected that the user will receive a pop up asking to activate data in order to send an SMS.

Environmental Variables:
Device: Flame Master 319(mb)
Build ID: 20140825040204
Gaia: e424c85eda87a40c0fa64d6a779c3fa368bf770b
Gecko: daa84204a11a
Version: 34.0a1 (Master)
Firmware Version: v123
User Agent: Mozilla/5.0 (Mobile; rv:34.0) Gecko/34.0 Firefox/34.0

Repro frequency: 100%
Link to failed test case: https://moztrap.mozilla.org/manage/case/8941/
See attached: Screenshot,logcat.
This issue DOES reproduce on the Flame Master 512(mb) Open_C 2.1, Flame 2.0 319(mb), Open_C 2.0, Flame 1.4 319(mb), and Open_C 1.4

User receives the message that the sms was not sent instead of the option to enable data.

Environmental Variables:
Device: Flame Master 512(MB)
Build ID: 20140825040204
Gaia: e424c85eda87a40c0fa64d6a779c3fa368bf770b
Gecko: daa84204a11a
Version: 34.0a1 (Master)
Firmware Version: v123

Environmental Variables:
Device: Open_C Master
Build ID: 20140825040204
Gaia: e424c85eda87a40c0fa64d6a779c3fa368bf770b
Gecko: daa84204a11a
Version: 34.0a1 (Master)
Firmware Version: P821A10V1.0.0B06_LOG_DL
User Agent: Mozilla/5.0 (Mobile; rv:34.0) Gecko/34.0 Firefox/34.0

Environmental Variables:
Device: Flame 2.0 319(mb)
Build ID: 20140825000201
Gaia: 4c8b5ced1966079086d86dec3098ecf340881306
Gecko: b0545e46d08b
Version: 32.0 (2.0)
Firmware Version: v123
User Agent: Mozilla/5.0 (Mobile; rv:32.0) Gecko/32.0 Firefox/32.0

Environmental Variables:
Device: Open_C 2.0
Build ID: 20140825000201
Gaia: 4c8b5ced1966079086d86dec3098ecf340881306
Gecko: b0545e46d08b
Version: 32.0 (2.0)
Firmware Version: P821A10V1.0.0B06_LOG_DL
User Agent: Mozilla/5.0 (Mobile; rv:32.0) Gecko/32.0 Firefox/32.0

Environmental Variables:
Device: Flame 1.4 319(mb)
Build ID: 20140825063013
Gaia: cf9d74da6653efeb43d9653e81c61aa00e693a67
Gecko: cdcb73d0febc
Version: 30.0 (1.4)
Firmware Version: v123
User Agent: Mozilla/5.0 (Mobile; rv:30.0) Gecko/30.0 Firefox/30.0

Environmental Variables:
Device: Open_C 1.4
Build ID: 20140825063013
Gaia: cf9d74da6653efeb43d9653e81c61aa00e693a67
Gecko: cdcb73d0febc
Version: 30.0 (1.4)
Firmware Version: P821A10V1.0.0B06_LOG_DL
User Agent: Mozilla/5.0 (Mobile; rv:30.0) Gecko/30.0 Firefox/30.0
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(ktucker)
Whiteboard: [2.1-flame-test-run-1]
Component: Gaia::SMS → RIL
It seems that the STR needs to clarify because in bug 1022850 comment 7, we saw same symptom was not reproducible in Buri 2.0/2.1.
Does that means this is not 100% reproducible or it's because that there is something not specified clearly in STR?

In addition, according to the attached log, the failure cause is that our device was not able to resolve "proxy.mobile.att.net" when only MMS data connection is established:
  08-25 15:02:22.408   313   313 I Gecko   : -@- MmsService: Failed to ensureRouting: 
  Error: Failed to resolve 'proxy.mobile.att.net', with status: 2152398878
where 2152398878 represents NS_ERROR_UNKNOWN_HOST (804B001E) defined in https://dev.mozilla.jp/localmdc/localmdc_6154.html
Please answer comment 3.
QA Whiteboard: [QAnalyst-Triage?] → [QAnalyst-Triage-]
Flags: needinfo?(ktucker) → needinfo?(jthomas)
This bug does NOT reproduce on the Buri 2.1. I was only able to reproduce in the Flame and Open_C devices. 

Environmental Variables:
Device: Buri Master
Build ID: 20140825193023
Gaia: 4d1d0ea5a82cddeeab497774cfa1703639e3c7d9
Gecko: dc352a7bf234
Version: 34.0a1 (Master)
Firmware Version: v1.2device.cfg
QA Whiteboard: [QAnalyst-Triage-] → [QAnalyst-Triage?]
Flags: needinfo?(jthomas) → needinfo?(ktucker)
Give an actual result please.
QA Whiteboard: [QAnalyst-Triage?] → [QAnalyst-Triage-]
Flags: needinfo?(ktucker) → needinfo?(jthomas)
Buri 2.1 sends MMS successfully with Data and WiFi disabled. No pop up whatsoever is displayed.
QA Whiteboard: [QAnalyst-Triage-] → [QAnalyst-Triage?]
Flags: needinfo?(jthomas) → needinfo?(ktucker)
Summary: [SMS] User does not receive a pop up asking to activate data to send message after disabling Wifi and Data → [MMS] User does not receive a pop up asking to activate data to send message after disabling Wifi and Data
QA Whiteboard: [QAnalyst-Triage?] → [QAnalyst-Triage+]
Flags: needinfo?(ktucker)
From comment 5, it seems to be device-specific issue.

set qawanted to have adb logcat & tcpdump for both Buri Master and Flame Master for further comparison:
https://github.com/bevis-tseng/Debug_Tools

Thanks!
Assignee: nobody → btseng
Keywords: qawanted
QA Contact: aalldredge
I have attached the adb logcat and tcpdump from Buri Master and Flame Master.

Environmental Variables:
Device: Buri Master
BuildID: 20140818072913
Gaia: ba1992f2addc5a84afc2eab426f222a6bf2962ba
Gecko: bf27e27c994d
Version: 34.0a1 (Master)
Firmware: v1.2device.cfg
User Agent: Mozilla/5.0 (Mobile; rv:33.0) Gecko/33.0 Firefox/33.0

Device: Flame Master
BuildID: 20140903062451
Gaia: 52670853c17fc0d3d33065c667c0ce124c93b98f
Gecko: 5e9826980be5
Version: 35.0a1 (Master) 
Firmware Version: v123
User Agent: Mozilla/5.0 (Mobile; rv:35.0) Gecko/35.0 Firefox/35.0
QA Whiteboard: [QAnalyst-Triage+] → [QAnalyst-Triage?]
Flags: needinfo?(jmitchell)
Keywords: qawanted
QA Whiteboard: [QAnalyst-Triage?] → [QAnalyst-Triage+]
Flags: needinfo?(jmitchell)
After comparing the log in Buri and Flame, with the same setup procedure in NetworkManager/NetworkService.
The DNS is not working in Flame when only MMS connection is established:
09-03 10:17:57.830  1959  1959 I Gecko   : -@- MmsService: Failed to ensureRouting: Error: Failed to resolve 'proxy.mobile.att.net', with status: 2152398878
where 2152398878 represents NS_ERROR_UNKNOWN_HOST (804B001E) defined in https://dev.mozilla.jp/localmdc/localmdc_6154.html

[Blocking Requested - why for this release]:
This is a flame-specific issue for DNS resolving for non-internet connections like MMS when data/wifi is off.
blocking-b2g: --- → 2.1?
triage: huge impact to user experience
blocking-b2g: 2.1? → 2.1+
The DNS configuration was changed since JB.
Per offline discussion, need Henry's help to figure out how to enable DNS for non-internet connection like MMS when data/wifi are off.
Assignee: btseng → hchang
Could anyone try if the following steps make it work?

1) Before sending mms, use 'adb shell ps | grep netd' to grab the pid of netd
2) Do 'adb shell setprop net.dns1.[pid of netd] 1'. For example, 'adb shell setprop net.dns1.278 1'

There is a mystery in [1] and I cannot find any equivalent operation in android.
Without setting this property, the dns internal would try to connect to 8.8.8.8 [2]
to see if ipv4 is available....

[1] http://androidxref.com/4.3_r2.1/xref/bionic/libc/netbsd/net/getaddrinfo.c#1873
[2] http://androidxref.com/4.3_r2.1/xref/bionic/libc/netbsd/net/getaddrinfo.c#399
Change [1] to 

let flag = Ci.nsIDNSService.RESOLVE_DISABLE_IPV6;
gDNSService.asyncResolve(hostname, flag, onLookupComplete, Services.tm.mainThread);

to pass along |AF_INET| down to [2] may avoid the issue mentioned in comment 17.
Considering the possibility of ipv6 only hostname, we can do another DNS lookup 
with RESOLVE_DISABLE_IPV4 if the first attempt fails.

[1] http://hg.mozilla.org/mozilla-central/file/843332cc69af/dom/system/gonk/NetworkManager.js#l696
[2] http://androidxref.com/4.3_r2.1/xref/bionic/libc/netbsd/net/getaddrinfo.c#1882
QA Whiteboard: [QAnalyst-Triage+] → [QAnalyst-Triage+][lead-review+]
I am gonna go for RESOLVE_DISABLE_IPV6 on MMS interface at this time.
It will be solved while using KK and using android_getaddrinfoforiface
to resolve MMS domain name.
Attached patch Bug1058280.patch (obsolete) — Splinter Review
Comment on attachment 8495872 [details] [diff] [review]
Bug1058280.patch

This patch will not work for "ipv6-only" mms transaction. We might have to file a bug to track this whenever this patch lands.
Attachment #8495872 - Flags: review?(btseng)
Comment on attachment 8495872 [details] [diff] [review]
Bug1058280.patch

Review of attachment 8495872 [details] [diff] [review]:
-----------------------------------------------------------------

r+ with the follow-up bug to be created and addressed in the comment for better tracking.

Thanks! :)
Attachment #8495872 - Flags: review?(btseng) → review+
Summary the analysis here for further reference:
[Background]
1. FFOS has to set default interface to netd to support the DNS query for non-default network-interface.
   (In Android, the caller's pid to netd will be used to map the corresponding network-interface to be used. Hence, it is not needed for Android to set default interface for the DNS query of non-default interface.)
2. In KK implementation of _dns_getaddrinfo [1], when ai_family == AF_UNSPEC, and default interface is used, routing of 8.8.8.8 and 2000:: will be used to check the capability of DNS query for IPv4 and for IPv6 respectively. If None, NS_NOTFOUND will be returned directly.
[Problem]
3. For this bug, there is only MMS connection available. Hence, the default interface will be enabled with mms connection for dns query. However, the 8.8.8.8 & 2000:: is not needed for mms connection and shall not be set into its routing, so the dns query will always be rejected with NS_NOTFOUND.
[Possible Solution in the future]
4. Since |android_getaddrinfoforiface| has been provided by AOSP, we could rely on this API to support DNS query over specified interface without setting the default interface to netd for non-default data connection like MMS.

[1] http://androidxref.com/4.4.4_r1/xref/bionic/libc/netbsd/net/getaddrinfo.c#1932
Attachment #8495872 - Attachment is obsolete: true
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/9c5d5a074024
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Please nominate this patch for Aurora approval when you get a chance :)
Flags: needinfo?(hchang)
Target Milestone: --- → 2.1 S6 (10oct)
Comment on attachment 8497918 [details] [diff] [review]
Bug1058280 (r+'d, add reviewer)

Approval Request Comment
[Feature/regressing bug #]: MMS
[User impact if declined]: User cannot send mms when wifi and data is off.
[Describe test coverage new/current, TBPL]: Manual test
[Risks and why]: No
[String/UUID change made/needed]: No
Attachment #8497918 - Flags: approval-mozilla-aurora?
Flags: needinfo?(hchang)
Attachment #8497918 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
The issue is verified fixed on Flame 2.2 Master  KK (319mb) (Full Flash), Flame 2.1 KK (319mb) (Full Flash) and Flame 2.0 KK (319mb) (Full Flash)

Environmental Variables:
Device: Flame 2.2 Master  KK (319mb) (Full Flash)
BuildID: 20141012040203
Gaia: 717ad4e8b7fc10ab8248500d00ba5ba0977fa8ab
Gecko: 44168a7af20d
Gonk: 52c909e821d107d414f851e267dedcd7aae2cebf
Version: 35.0a1
Firmware: V180
User Agent: Mozilla/5.0 (Mobile; rv:35.0) Gecko/35.0 Firefox/35.0

Environmental Variables:
Device: Flame 2.1 KK (319mb) (Full Flash)
BuildID: 20141012001201
Gaia: d18e130216cd3960cd327179364d9f71e42debda
Gecko: 610ee0e6a776
Gonk: 52c909e821d107d414f851e267dedcd7aae2cebf
Version: 34.0a2 
Firmware: V180
User Agent: Mozilla/5.0 (Mobile; rv:34.0) Gecko/34.0 Firefox/34.0

Environmental Variables:
Device: Flame 2.0 KK (319mb) (Full Flash)
BuildID: 20141012000202
Gaia: 6effca669c5baaf6cd7a63c91b71a02c6bd953b3
Gecko: 54ec9cb26b59
Gonk: 52c909e821d107d414f851e267dedcd7aae2cebf
Version: 32.0 (
Firmware: V180
User Agent: Mozilla/5.0 (Mobile; rv:32.0) Gecko/32.0 Firefox/32.0

Result: User DOES receive a pop up asking to activate data to send message after disabling Wifi and Data
Status: RESOLVED → VERIFIED
QA Whiteboard: [QAnalyst-Triage+][lead-review+] → [QAnalyst-Triage?][lead-review+]
Flags: needinfo?(ktucker)
QA Whiteboard: [QAnalyst-Triage?][lead-review+] → [QAnalyst-Triage+][lead-review+]
Flags: needinfo?(ktucker)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: