[B2G][helix][System][dingyu] the phone reboots when checking for a corrupt video

VERIFIED WORKSFORME

Status

Firefox OS
Gaia::Camera
P2
normal
VERIFIED WORKSFORME
4 years ago
4 years ago

People

(Reporter: lecky, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

4 years ago
User Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1

Steps to reproduce:

1.open the camera and toggle to the video mode
2. press the caputure buttom to start a video recording
3. press the power key to restart the phone
4. open the camere and togggle to check the video file 



Actual results:

4.the phone is reboot when I view the video file



Expected results:

4. the video file is exist and can be play normally
(Reporter)

Updated

4 years ago
Severity: normal → blocker
blocking-b2g: --- → hd?
Priority: -- → P1

Updated

4 years ago
Component: Gaia::System → Gaia::Camera
May we see the video after the phone rebooted?? I don't think so. We use memory to keep the image/video list captured by camera app[1]. When we reboot the phone or close camera app, this list is reset.

So, how do you have: 4.the phone is reboot when I view the video file???

[1] https://github.com/mozilla-b2g/gaia/blob/2a49cbca5e33bc2dbd89f962cf10d8a65355288e/apps/camera/js/filmstrip.js#L10
(Reporter)

Comment 2

4 years ago
John, the phone is reboot before the video is playing accorrding to our test Colleague! I cann't upload the log from the website, so I will attact the log from the email!
Hi, 

I got it. I just feel the STR doesn't make sense:

1. open the camera and toggle to the video mode
2. press the caputure buttom to start a video recording <==== recording starts
3. press the power key to restart the phone  <==== recording ends when you trying to reboot the device
4. open the camere and togggle to check the video file  <=== once device rebooted, you can't find the recorded video in camera list but in video app.

That's why I ask how you guys find the video in camera app...
(Reporter)

Comment 4

4 years ago
Hi John,

    4. open the camere and togggle to check the video file  <=== once device rebooted, you can't find the recorded video in camera list but in video app.

    yes, you are right,I can not find the video in camera app. But the phone is reboot before I find the video files. 
   
    In the logs, I see the following message 
08-14 13:49:46.712 I/Gecko ( 160): -*- QCContentHelper_QC_B2G: Unregistered voicemail target: [object ChromeMessageSender] 
08-14 13:49:46.712 I/Gecko ( 160): -*- QCContentHelper_QC_B2G: receiveMessage: 'child-process-shutdown' arrived from content process 
08-14 13:49:46.712 I/DEBUG ( 163): #00 pc 00c82932 /system/b2g/libxul.so 
08-14 13:49:46.712 I/DEBUG ( 163): #01 lr 4108e92f /system/b2g/libxul.so 

Both PC and LR registers are pointing to libxul.so. Could you please help to check  where it is crashing
Is this the same underlying issue as bug 910995 -- that we don't properly shutdown/cleanup the video recorder when we shutdown/reboot the phone? Or is this bug about us crashing when we reboot and try to parse the incomplete/invalid video?
Thanks Mike.

I think it is worth to ask lecky about it. If we don't open video app, the video file isn't parsed because camera app keeps the video list in memory.
(Reporter)

Comment 7

4 years ago
Hi Mike & John:
   
   If we don't properly shutdown/cleanup the video recorder, I appreciate to know that why the phone is reboot itself and how to check where it is crashing in Comment 4
(Reporter)

Comment 8

4 years ago
Hi John:
    According to reproduce steps, It seem like b2g reboot, How to positioning crash place according to the crash stack?
Sorry, I can't make sure. I am focusing on gaia currently. Maybe, Mike can help to tell us how to do it.
Lecky and John, you can run gdb against the b2g parent process (assuming that's where the crash is).
1. let b2g boot to the lockscreen or homescreen
2. run |adb shell b2g-ps| to get the PID of the b2g process
3. in your $B2G folder, run |./run-gdb.sh attach <PID-from-step-2>|
4. when the (gdb) prompt appears, type "c" and press [Enter] to let b2g continue running
5. do whatever steps are required to trigger the crash
6. when gdb breaks on the crash, type "bt" and press [Enter] to get the stack trace of the crashing thread
7. paste that complete stack trace into an attachment to this bug. :)

In the event the crash is _not_ in the b2g parent process, you need a few extra steps; try the above first and we'll take it from there.
Summary: [B2G][helix][System][dingyu]the phone is reboot when I check the video → [B2G][helix][System][dingyu] the phone reboots when checking for a corrupt video
Without the logcat log and the corrupted video files, we can not analyze the crash.
(In reply to Sotaro Ikeda [:sotaro] from comment #11)
> Without the logcat log and the corrupted video files, we can not analyze the
> crash.

Is there a reason not to?
(Reporter)

Comment 13

4 years ago
(In reply to Sotaro Ikeda [:sotaro] from comment #11)
> Without the logcat log and the corrupted video files, we can not analyze the
> crash.

Becase there is some trouble in my website, so I cann't uoload the attachment, I have sended it to john(johu@mozilla.com).

John:

Could you help me to attact the log, thank you!
Created attachment 808363 [details]
log from DingYu

Hi all, 

This attachment is the log files sent by DingYu.

Comment 15

4 years ago
I tested same problem with the Nexus-4 devices. I could able to reproduce it.

1. Enter into Video Record mode.
2. Restart the phone while recording.

One Red color ring will appears on the screen and device enter into hang state.
Same time, if I do the adb reboot. Device will rebooted and corrupted vide file in the /data/sdcard/DCIM/100MZLLA/


I enabled the logs in Gaia and Gecko and analysis the Reboot process on the Firefox. 

Gaia:
1. startPowerOff() - sleep_menu.js
2. Loads the Default Animation - sleepmenu.js
3. Actual power off invoked sm_actual_poweroff() - sleepmenu.js

Gecko:
4. PowerManager and PowerManagerService Reboot() -  PowerManager.cpp/PowerManagerService.cpp
5. hal::Reboot() - it calls gonk specific HAL for reboot

But while rebooting on the Video Recording , 1 & 2 is only invoked, other calls not happened.

I have a doubt about the LoadAnimation, so temporarily remove the Animation on the reboot condition.

But the Video file still corrupted.
(Reporter)

Updated

4 years ago
Severity: blocker → normal
Priority: P1 → P2
(Reporter)

Updated

4 years ago
Status: UNCONFIRMED → RESOLVED
Last Resolved: 4 years ago
Resolution: --- → WORKSFORME
(Reporter)

Updated

4 years ago
Status: RESOLVED → VERIFIED

Updated

4 years ago
blocking-b2g: hd? → ---
You need to log in before you can comment on or make changes to this bug.