Closed Bug 1050622 Opened 10 years ago Closed 6 years ago

[Tarako][Browser] b2g process restarts when downloading large size movie file(500MB)

Categories

(Firefox OS Graveyard :: Gaia::Browser, defect)

ARM
Gonk (Firefox OS)
defect
Not set
critical

Tracking

(b2g-v1.3T affected, b2g-v1.4 affected)

RESOLVED WONTFIX
Tracking Status
b2g-v1.3T --- affected
b2g-v1.4 --- affected

People

(Reporter: defang.zhang, Assigned: thomas)

References

Details

(Whiteboard: [sprd 340814][partner-blocker])

Attachments

(1 file)

DEFECT DESCRIPTION:
   The phone reboot  when download long movie 

Steps to reproduce:
----------------------------------------------------
1.input http://imps.tcl-ta.com/cailiang/media/longmovies.mp4 in browser 
2.long press this video select "save video"
3.the phone reboot after two minutes 

Actual result:
---------------------------------------
 the phone reboot after two minutes
 

Expected result:
--------------------------------------- 
   the phone not reboot when save big video


Additional info:
--------------------------------------
Reproduce rate:  5/5
the call stack of gecko is at below.
I think we should change the way of file downloading, such as flushing the blob to the file when receiving every new bunch of 1MB bytes.

#0  mmap (addr=0x0, size=67108864, prot=3, flags=34, fd=-1, offset=0) at bionic/libc/unistd/mmap.c:46
...
#10 0x41d8606a in moz_realloc (ptr=0x0, size=67108864) at /home/ffos/yingxu/6821/gecko/memory/mozalloc/mozalloc.cpp:94
#11 0x414e07a4 in BlobSet::ExpandBufferSize (this=0x45dea0a0, aData=0x43fcd000, aLength=524)
    at /home/ffos/yingxu/6821/gecko/content/base/src/nsDOMBlobBuilder.h:157
#12 BlobSet::AppendVoidPtr (this=0x45dea0a0, aData=0x43fcd000, aLength=524)
    at /home/ffos/yingxu/6821/gecko/content/base/src/nsDOMBlobBuilder.cpp:436
#13 0x41513400 in nsXMLHttpRequest::StreamReaderFunc (in=<value optimized out>, closure=0x4435fbb0, 
    fromRawSegment=0x43fcd000 "@\030R\004\361x?\264\273\356\240;\224E\232\025\274e![\\ev\271Aov\255\256\260\312\064\373\272\065\016\275g\320\301\fhk|\365\254\b\232\024\252", toOffset=0, count=524, writeCount=0xbe8295a4)
    at /home/ffos/yingxu/6821/gecko/content/base/src/nsXMLHttpRequest.cpp:1713
#14 0x40ea3a56 in nsInputStreamTee::WriteSegmentFun (in=<value optimized out>, closure=0x44f4ac70, 
    fromSegment=0x43fcd000 "@\030R\004\361x?\264\273\356\240;\224E\232\025\274e![\\ev\271Aov\255\256\260\312\064\373\272\065\016\275g\320\301\fhk|\365\254\b\232\024\252", offset=0, count=524, writeCount=0xbe8295a4)
    at /home/ffos/yingxu/6821/gecko/xpcom/io/nsInputStreamTee.cpp:200
#15 0x40ea6158 in nsPipeInputStream::ReadSegments (this=0x44359d48, 
    writer=0x40ea3a41 <nsInputStreamTee::WriteSegmentFun(nsIInputStream*, void*, char const*, unsigned int, unsigned int, unsigned int*)>, closure=0x44f4ac70, count=524, readCount=0xbe8295fc)
    at /home/ffos/yingxu/6821/gecko/xpcom/io/nsPipe3.cpp:781
#16 0x40ea36b4 in nsInputStreamTee::ReadSegments (this=0x44f4ac70, writer=<value optimized out>, 
    closure=<value optimized out>, count=0, bytesRead=0xbe8295fc)
    at /home/ffos/yingxu/6821/gecko/xpcom/io/nsInputStreamTee.cpp:257
#17 0x415138e2 in nsXMLHttpRequest::OnDataAvailable (this=0x4435fbb0, request=0x43322c30, ctxt=<value optimized out>, 
    inStr=0x44f4ac70, sourceOffset=33554432, count=524)
    at /home/ffos/yingxu/6821/gecko/content/base/src/nsXMLHttpRequest.cpp:1822
Summary: [Tarako][Browser] The phone reboot when download long movie → [Tarako][Browser] The phone reboot when downloading large size movie file(500MB)
Flags: needinfo?(wchang)
Flags: needinfo?(ryang)
Flags: needinfo?(pcheng)
Whiteboard: [sprd 340814] → [sprd 340814][partner-blocker]
Attached file browser.log
A lot of OOM kill error in the log. It should not be b2g restart. because I didn't see b2g process was killed in the log file. And I get following error when use "b2g-info" command.                                                
Fatal error: Two B2G main processes found (pids 887 and 906)
Flags: needinfo?(pcheng)
Summary: [Tarako][Browser] The phone reboot when downloading large size movie file(500MB) → [Tarako][Browser] new b2g process starts when downloading large size movie file(500MB)
(In reply to Peipei Cheng from comment #2)
> Created attachment 8469805 [details]
> browser.log
> 
> A lot of OOM kill error in the log. It should not be b2g restart. because I
> didn't see b2g process was killed in the log file. And I get following error
> when use "b2g-info" command.                                                
> Fatal error: Two B2G main processes found (pids 887 and 906)

Please ignore this comment. I flashed a new build, seems it didn't happen. I will figure out why 2 b2g process could exists.
Summary: [Tarako][Browser] new b2g process starts when downloading large size movie file(500MB) → [Tarako][Browser] b2g process restarts when downloading large size movie file(500MB)
yes, b2g process being killed.

give it time, it's the T2M test server.
t2m people took 2 minutes. I took about 10 minutes.

And I found playing wouldn't cause oom. Download will.
Danny is checking this one.
Flags: needinfo?(wchang)
Flags: needinfo?(ryang)
Flags: needinfo?(dliang)
I can also reproduce this issue on tarako and t2m device, but there is some differences, I listed what I found as below:

1. I flashed the latest rom in t2m device, the memory log didn't include swap field. I am worry about if the memory improvements is in t2m's software.

2. Before b2g was killed, there is no background/foreground process. The possible root cause might be there are some download related tasks in b2g even if browser application was killed.

Hi Ying, could you help to check t2m's software and make sure the necessary memory improvements are merged.

Hi Wayne, we might need browser/downlaod manager related owner to check this, could you help to find the proper owner?
Flags: needinfo?(ying.xu)
Flags: needinfo?(wchang)
Flags: needinfo?(dliang)
(In reply to Danny Liang [:dliang] from comment #6)
> Hi Ying, could you help to check t2m's software and make sure the necessary
> memory improvements are merged.

They have used sprd latest source code.
Flags: needinfo?(ying.xu)
Adam,

Do you know who can comment on this part here?
(In reply to Danny Liang [:dliang] from comment #6)

> 2. Before b2g was killed, there is no background/foreground process. The
> possible root cause might be there are some download related tasks in b2g
> even if browser application was killed.
> 

While downloading, if browser gets killed by whatever reason the download continues. How do we stop the download if needed?
Flags: needinfo?(wchang) → needinfo?(arogers)
Not sure. 

Gregor, any insight on this one?
Flags: needinfo?(arogers) → needinfo?(anygregor)
This is 1.3T? Aus, do you remember what version of the download manager we have on 1.3T?
Usually you have a download section in settings where you can cancel a download or it should also show up in the notification area.
Flags: needinfo?(anygregor) → needinfo?(aus)
1.3 and 1.3T do not have the new Downloads API or Gaia Download Manager. This download is triggered via browser implemented media downloads (which uses system xhr to download the file).
Flags: needinfo?(aus)
Firefox OS is not being worked on
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: