Closed Bug 917167 Opened 6 years ago Closed 6 years ago

[Buri][T-mobile 51612][MMS]The device cannot send MMS

Categories

(Firefox OS Graveyard :: RIL, defect, P1)

defect

Tracking

(blocking-b2g:leo+, firefox25 wontfix, firefox26 fixed, firefox27 fixed, b2g18 fixed, b2g18-v1.0.0 wontfix, b2g18-v1.0.1 wontfix, b2g-v1.1hd fixed, b2g-v1.2 fixed)

RESOLVED FIXED
1.1 QE5
blocking-b2g leo+
Tracking Status
firefox25 --- wontfix
firefox26 --- fixed
firefox27 --- fixed
b2g18 --- fixed
b2g18-v1.0.0 --- wontfix
b2g18-v1.0.1 --- wontfix
b2g-v1.1hd --- fixed
b2g-v1.2 --- fixed

People

(Reporter: sync-1, Assigned: airpingu)

References

Details

Attachments

(5 files)

Mozilla build ID:20130902041201
 
 DEFECT DESCRIPTION:
 The device cannot send MMS. There is always a failure message "Service currently unavailable. Message will automatically be sent once service is available"
 MMS APN Settings seem correct. I cannot find a solution.
 However the device can receive MMS
 
 Customer Impact Statement: 
 Customer will not have this basic functionality of Smartphones. Rather poor impression of this new OS.
 
  REPRODUCING PROCEDURES:
 
  EXPECTED BEHAVIOUR:
 
  ASSOCIATE SPECIFICATION:
 
  TEST PLAN REFERENCE:
 
  TOOLS AND PLATFORMS USED:
 
  USER IMPACT:
 
  REPRODUCING RATE:
 
  For FT PR, Please list reference mobile's behavior:
block shipment
blocking-b2g: --- → leo?
Clone from brother
Attached image PIC
Clone from brother
Attached file 17A+FG,JRDLOG
Clone from brother
Attached file 17A+FG-NEW LOG
Can you confirm this works with the same SIM on another device ?
Flags: needinfo?(sync-1)
(In reply to Julien Wajsberg [:julienw] from comment #8)
> Can you confirm this works with the same SIM on another device ?

Yes, the same SIM card can send MMS on android handset. 

The most possible to reproduce this issue steps are:
Flash the handset -> FF OS start -> send the MMS, MMS can not be sent.
Flags: needinfo?(sync-1)
Can you compare the settings you have on android and the settings you have on the handset ? APN, but also MMSC proxy ?
Flags: needinfo?(sync-1)
When I wait a long time after flash FF OS on the device, the signal become normal, then I can send MMS success.

But sometimes it can not send MMS ok in this situation:
Compose a new MMS -> Select attachment -> Select Camera -> take a picture -> Insert
it in the MMS -> Try to send it.
The problem is reproducible only if you select to take a picture using camera while composing an MMS.
If the picture is selected from Gallery, the MMS can send.
I'm not sure this is the same problem.

About the first problem: I've noticed that the statusbar icon shows the signal maybe too soon, before we can actually use the network. Is it possible that this is the reason ? What do you mean by "a long time" ? 1 minute ? 2 minutes ? 5 minutes ?

About the second problem: I'll test it on my end.
Flags: needinfo?(felash)
android:
APN:3gwap
MMSC: http://mmsc.myuni.com.cn
MMS proxy: 10.0.0.172
MMS port: 80

FF OS:
APN:3gwap
MMS proxy: 10.0.0.172
MMS port: 80
MMSC: http://mmsc.myuni.com.cn

The setting is the same as I saw.
Flags: needinfo?(sync-1)
When sending MMS, change to airmode, MMS is sending, and then disable the airmode, MMS is sending all the time(circle progress is showing), but not OK any more.

Maybe it should be added some protect to avoid this situation. I think the first start device after flash is the same cause. The data network is not ok for send MMS.
I can't reproduce the picture problem.

Needinfo Gene for the sending problem. I think we fixed most of these problems recently. Gene, were they uplifted in 1.1 ?
Flags: needinfo?(felash) → needinfo?(gene.lian)
(In reply to Julien Wajsberg [:julienw] from comment #15)
> I can't reproduce the picture problem.
> 
> Needinfo Gene for the sending problem. I think we fixed most of these
> problems recently. Gene, were they uplifted in 1.1 ?

Hi  Julien Wajsberg,

What part did you modified, RIL? Gecko? Thanks!
Gene will know better than me ;)
Bug 901992 solved bugs for the MMS retrying mechanism. It will end up correctly turning into exclamation mark if the MMS failed to send after 4 times of retries. I'd suggest uplifting that.
Flags: needinfo?(gene.lian)
Depends on: 901992
Are you saying that based on the steps on comment#14, this is a blocker for you guys ?
Flags: needinfo?(longxiuping)
(In reply to bhavana bajaj [:bajaj] from comment #19)
> Are you saying that based on the steps on comment#14, this is a blocker for
> you guys ?

Yes, device can not send MMS is a block. 

But the original bug for MMS can not send is the following:
The device cannot send MMS. There is always a failure message "Service currently unavailable. Message will automatically be sent once service is available".
MMS APN Settings seem correct. I cannot find a solution.
However the device can receive MMS.
Flags: needinfo?(longxiuping)
Reproduce steps:
Compose a new MMS -> Select attachment -> Select Camera -> take a picture -> Insert it in the MMS -> Try to send it.
The problem is reproducible only if you select to take a picture using camera while composing an MMS.
If the picture is selected from Gallery, the MMS can send.
The symptoms in comment 20 look a lot like I describe in bug 909080.

Xiupinglong> can you send/receive SMS work in your case ? (in bug 909080 nothing was working: SMS, MMS, Data, Dial, but I could receive calls and SMS)
Broken (or unreliable) new 1.1 feature (MMS) = blocker.  (We decided during triage that whether this is caused by bug 901992 or bug 909080 or is distinct is unimportant.)
blocking-b2g: leo? → leo+
I couldn't send MMS on my 1.1 unagi today, but maybe my connection was quite bad, I'll try again later.
Dear All,

I think there have some errors in refCount(In MmsService.js), please help to confirm it.

1. Send the first mms A , the refCount is zero in function acquire, if another mms B is sent before A send successful, the refCount will up to 1,  then after A send successful, the refCount will decrease to zero in the function release, and there will set a delay to release MMS network (onDisconnectTimerTimeout), but  mms B still not send successful (I think it's an error). If the onDisconnectTimerTimeout is called before B send success, here will occur an error, the second MMS unable send successful.

2. Send a mms A successful, send another mms B before onDisconnectTimerTimeout is called, if onDisconnectTimerTimeout is called before the mms B send successfull, then will occur an error, the mms B unable send successful. (I think it's an error that in onDisconnectTimerTimeout not judge refCount)

3. Continuously send mms, if some error occur in XHR, in xhr.onerror will call releaseMmsConnectionAndCallback, and in xhr.onreadystatechange will also call
releaseMmsConnectionAndCallback, then refCount will be reduce twice, it's an error.
(In reply to Julien Wajsberg [:julienw] from comment #22)
> The symptoms in comment 20 look a lot like I describe in bug 909080.
> 
> Xiupinglong> can you send/receive SMS work in your case ? (in bug 909080
> nothing was working: SMS, MMS, Data, Dial, but I could receive calls and SMS)

Yes, sometimes device can send/receive SMS but can not send MMS.
(In reply to xiupinglong from comment #21)
> Reproduce steps:
> Compose a new MMS -> Select attachment -> Select Camera -> take a picture ->
> Insert it in the MMS -> Try to send it.
> The problem is reproducible only if you select to take a picture using
> camera while composing an MMS.
> If the picture is selected from Gallery, the MMS can send.

With the latest V1.1 (b2g18 build), I tried at least 3 times to send MMS from either Gallery or Camera respectively. Each of them is working well.

Hi, xiupinglong, could you please give it a try again or provide a concrete set of steps to reproduce? Asking for QA's support as well.
Keywords: qawanted
(In reply to Gene Lian [:gene] (national holidays until 9/23) from comment #27)
> Hi, xiupinglong, could you please give it a try again or provide a concrete
> set of steps to reproduce? Asking for QA's support as well.

Hi Gene Lian, could you see the comment #25, is the analysis right?
(In reply to Guoqiang.CHEN from comment #25)
> Dear All,
> 
> I think there have some errors in refCount(In MmsService.js), please help to
> confirm it.
> 
> 1. Send the first mms A , the refCount is zero in function acquire, if
> another mms B is sent before A send successful, the refCount will up to 1, 

If B is sending before A is successfully sent, the refCount will up to 2 since B has already acquired one count?

> then after A send successful, the refCount will decrease to zero in the
> function release, and there will set a delay to release MMS network
> (onDisconnectTimerTimeout), but  mms B still not send successful (I think
> it's an error). If the onDisconnectTimerTimeout is called before B send
> success, here will occur an error, the second MMS unable send successful.
> 
> 2. Send a mms A successful, send another mms B before
> onDisconnectTimerTimeout is called, if onDisconnectTimerTimeout is called
> before the mms B send successfull, then will occur an error, the mms B
> unable send successful. (I think it's an error that in
> onDisconnectTimerTimeout not judge refCount)

You are correct! Nice catch! :) Or we should call disconnectTimer.cancel() whenever calling .acquire(...).

> 
> 3. Continuously send mms, if some error occur in XHR, in xhr.onerror will
> call releaseMmsConnectionAndCallback, and in xhr.onreadystatechange will
> also call
> releaseMmsConnectionAndCallback, then refCount will be reduce twice, it's an
> error.

If the .onreadystatechange would always be executed even if .onerror has been executed, then this bug is valid. We might need to remove .onerror.


-----
Hi Guoqiang.CHEN,

I don't think these refCount bugs are the direct cause of this bug. Could you please fire separate bugs for them? That will be wonderful if you could please take them as well. If not, we can find someone fixing them.
(In reply to xiupinglong from comment #28)
> (In reply to Gene Lian [:gene] (national holidays until 9/23) from comment
> #27)
> > Hi, xiupinglong, could you please give it a try again or provide a concrete
> > set of steps to reproduce? Asking for QA's support as well.
> 
> Hi Gene Lian, could you see the comment #25, is the analysis right?

Sounds right but the refCount related bugs only happens when sending MMS consecutively, which is not a symptom of this bug. Anyway, I cannot reproduce this bug on V1.1.
Please see comment #29.
Flags: needinfo?(Chenguoqiang)
Dear Gene,
I create another PR 919440, I'm sorry I can't take this because I'm not very professional in MMS send.

>If B is sending before A is successfully sent, the refCount will up to 2 since B has already acquired one count?
When sending A, the refCount is zero(if not connected the acquire will not add refCount), when sending B the refCount will up to 1.
Flags: needinfo?(Chenguoqiang)
(In reply to Guoqiang.CHEN from comment #32)
> >If B is sending before A is successfully sent, the refCount will up to 2 since B has already acquired one count?
> When sending A, the refCount is zero(if not connected the acquire will not
> add refCount), when sending B the refCount will up to 1.

OK! I see. It's indeed a bug. Thanks for catching this! :)
Attached patch PatchSplinter Review
Hi guys,

This patch fixes bug 917167, #c25. However, this bug isn't reproducing to me even before this patch.

This refCount issues do cause the failure of sending MMS under some circumstances, so I'll still prefer taking use of this bug to land it.

We're in the leo+ releasing cycle. Need more reviewers' eyes on this patch fix to avoid regression.
Attachment #808497 - Flags: review?(vyang)
Attachment #808497 - Flags: review?(ctai)
Attachment #808497 - Flags: review?(Chenguoqiang)
Hi Gene Lian,

Device can not send MMS reproduce steps:
1. system language is Greek
>>>Compose a new MMS -> Select attachment -> Select Camera -> take a picture -> Insert it in the MMS -> Try to send it -> the MMS can not send.

>>>Compose a new MMS -> Select gallery -> select a picture which name is Greek language -> Insert it in the MMS -> Try to send it -> the MMS can not send.

2. system language is English
>>>Compose a new MMS -> Select gallery -> select a picture which name is Greek language -> Insert it in the MMS -> Try to send it -> the MMS can not send.

I will fire another bug for this.
Comment on attachment 808497 [details] [diff] [review]
Patch

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

::: dom/mobilemessage/src/gonk/MmsService.js
@@ +557,2 @@
>          xhr.onreadystatechange = function () {
>            if (xhr.readyState != Ci.nsIXMLHttpRequest.DONE) {

Should we put  releaseMmsConnectionAndCallback(0, null); right here?
Attachment #808497 - Flags: review?(ctai)
(In reply to Chia-hung Tai [:ctai :ctai_mozilla :cht] from comment #37)
> Comment on attachment 808497 [details] [diff] [review]
> Patch
> 
> Review of attachment 808497 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> ::: dom/mobilemessage/src/gonk/MmsService.js
> @@ +557,2 @@
> >          xhr.onreadystatechange = function () {
> >            if (xhr.readyState != Ci.nsIXMLHttpRequest.DONE) {
> 
> Should we put  releaseMmsConnectionAndCallback(0, null); right here?

No. Please see [1]. The readyState implies the state flow of loading page. We need to bail out all the states until DONE.

[1] https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#Properties
Flags: needinfo?(gene.lian)
(In reply to xiupinglong from comment #36)
> Hi Gene Lian,
> 
> Device can not send MMS reproduce steps:
> 1. system language is Greek
> >>>Compose a new MMS -> Select attachment -> Select Camera -> take a picture -> Insert it in the MMS -> Try to send it -> the MMS can not send.
> 
> >>>Compose a new MMS -> Select gallery -> select a picture which name is Greek language -> Insert it in the MMS -> Try to send it -> the MMS can not send.
> 
> 2. system language is English
> >>>Compose a new MMS -> Select gallery -> select a picture which name is Greek language -> Insert it in the MMS -> Try to send it -> the MMS can not send.
> 
> I will fire another bug for this.

Awesome! Thanks for reproducing with better steps. I can look into that when you're done opening that bug (should be an leo+ one for any failure of sending MMS). I'll keep using this bug to solve the refCount issue which is causing another kind of failure of sending MMS.
Flags: needinfo?(gene.lian)
I fire another bug 919465 for comment 36.
Blocks: b2g-mms
Keywords: qawanted
Comment on attachment 808497 [details] [diff] [review]
Patch

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

According to comment 38, looks good to me.
Attachment #808497 - Flags: review+
Comment on attachment 808497 [details] [diff] [review]
Patch

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

I verify it is ok, thanks.
Attachment #808497 - Flags: review?(Chenguoqiang) → review+
Blocks: 919360
Ping Vicamo for the review. This is leo+. I'm afraid we need to move fast. I'd suggest let's focus on solving bug first. If you have any better insight about the architecture, we can keep polishing it in koi or 1.3. ;)
Assignee: nobody → gene.lian
Component: Gaia::SMS → RIL
Comment on attachment 808497 [details] [diff] [review]
Patch

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

Thank you.  I've also filed an follow-up bug 920362 for test cases of mms data connection acquisition/release.
Attachment #808497 - Flags: review?(vyang) → review+
The patch for b2g18 is also ready in the attachment list. Please help uplift that when it lands to central. Thanks!
https://hg.mozilla.org/mozilla-central/rev/d2303df55b22
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Duplicate of this bug: 919440
You need to log in before you can comment on or make changes to this bug.