Closed Bug 992505 Opened 6 years ago Closed 6 years ago

[Tarako][Homescreen][Wallpaper] Unable to open gallery when try to set wallpaper from gallery

Categories

(Core :: DOM: Device Interfaces, defect)

28 Branch
Other
Gonk (Firefox OS)
defect
Not set

Tracking

()

VERIFIED FIXED
blocking-b2g 1.3T+
Tracking Status
b2g-v1.3T --- verified

People

(Reporter: bli, Assigned: johnhu)

References

Details

(Whiteboard: [priority][sprd296553])

Attachments

(6 files)

Environment:
-----------------------------------------------------
Gaia      fbf194db193f12b0db070c87bc99f6bb42e28dc0
Gecko https://hg.mozilla.org/releases/mozilla-b2g28_v1_3t/rev/5ff1d2a9fbc1
BuildID   20140404164001
Version   28.1
ro.build.version.incremental=eng.cltbld.20140404.200513
ro.build.date=Fri Apr  4 20:05:20 EDT 2014 


Steps to reproduce:
-----------------------------------------------------
1. Make sure there is a large size picture in gallery
  (e.g. 2MB jpeg file)

2. Long tap on homescreen, select 'Change wallpaper'
3. Select 'Galley'
4. Select the large size jpeg file
5. Tap on 'Done' on the top right corner and wait for a few seconds.
   --> It goes back to homescreen, and the wallpaper is not changed.

6. Repeat step 2 and 3


Actual result:
-----------------------------
It goes back to homescreen directly after tapping on 'Change Wallpaper'.


Expected result:
-------------------------------
Go to gallery.


Additional info:
---------------------------------
Sometimes need to repeat step 2 and 3 two or more times to reproduce this issue.
blocking-b2g: --- → 1.3T?
blocking-b2g: 1.3T? → ---
Function failed
blocking-b2g: --- → 1.3T?
Whiteboard: [MP_Blocker]
If it does not belong to Gallery, please move to system or settings component because in 1.3t branch, the homescreen does not have almost code for wallpapers. The homescreen launches an activity to pick a wallpaper and when it receives it in the success callback, it set this one as a setting of the device.

I don't have a Tarako device so someone with this device should check in which step it fails: gallery, homescreen or settings/system app (I don't know where this setting finishes being resolved) 

https://github.com/mozilla-b2g/gaia/blob/v1.3t/apps/homescreen/js/wallpaper.js
Component: Gaia::Homescreen → Gaia::Gallery
triage: partner blocker. 1.3T+
Tim/Hema, can someone please take a look? Thanks
blocking-b2g: 1.3T? → 1.3T+
Flags: needinfo?(timdream)
Flags: needinfo?(hkoka)
Whiteboard: [MP_Blocker] → [priority]
Can we have some log here first to make sure there isn't any OOM?
Flags: needinfo?(timdream) → needinfo?(bli)
Attached file logcat
Flags: needinfo?(bli)
Attached file slog
Attached file slog-zip
Perhaps it has something to do with bug 970780?  Possible dup?
It says explicitly in the log that the onWallpaperError: pick failed.

09-11 06:50:40.470    83    83 E [Gralloc-ERROR]: int gralloc_unregister_buffer(const gralloc_module_t*, const native_handle_t*):274 Trying to unregister buffer 0x47687150 from process 83 that was not created in current process: 83
09-11 06:50:40.470    83    83 E [Gralloc-ERROR]: int gralloc_unregister_buffer(const gralloc_module_t*, const native_handle_t*):274 Trying to unregister buffer 0x4766df60 from process 83 that was not created in current process: 83
09-11 06:50:40.630  1577  1577 E GeckoConsole: Content JS WARN at app://homescreen.gaiamobile.org/js/wallpaper.js:46 in onWallpaperError: pick failed!
09-11 06:50:40.640  1577  1577 E GeckoConsole: Content JS WARN at app://homescreen.gaiamobile.org/js/wallpaper.js:46 in onWallpaperError: pick failed!
09-11 06:50:40.640  1577  1577 E GeckoConsole: Content JS WARN at app://homescreen.gaiamobile.org/js/wallpaper.js:46 in onWallpaperError: pick failed!
09-11 06:50:40.640  1577  1577 E GeckoConsole: Content JS WARN at app://homescreen.gaiamobile.org/js/wallpaper.js:46 in onWallpaperError: pick failed!
09-11 06:50:40.690  1577  1577 E GeckoConsole: Content JS WARN at app://homescreen.gaiamobile.org/js/wallpaper.js:46 in onWallpaperError: pick failed!
09-11 06:51:03.480  2081  2081 I dumpstate: begin
09-11 06:51:07.930    83  2017 E Profiler: BPUnw: [1 total] thread_unregister_for_profiling(me=0xd8a178)  (NOT REGISTERED) 
09-11 06:51:10.030    83  2035 E Profiler: BPUnw: [1 total] thread_unregister_for_profiling(me=0xd8a238)  (NOT REGISTERED) 
09-11 06:51:10.640    83  2031 E Profiler: BPUnw: [1 total] thread_unregister_for_profiling(me=0xd8a3b8)  (NOT REGISTERED) 
09-11 06:51:27.990  1171  1174 F libc    : Fatal signal 13 (SIGPIPE) at 0x00000493 (code=0)
I think it maybe related to bug 824666
Flags: needinfo?(chung)
I don't have anyone who can help with this. Please feel free to take this up.
Flags: needinfo?(hkoka)
Attachment #8402533 - Attachment mime type: text/x-log → text/plain
From the logcat:

04-05 18:32:35.660 I/Gecko   (   83): 
04-05 18:32:35.670 I/Gecko   (   83): 
04-05 18:32:35.670 I/Gecko   (   83): ###!!! [Parent][MessageChannel] Error: Channel error: cannot send/recv
04-05 18:32:35.670 I/Gecko   (   83): 
04-05 18:32:35.670 E/GeckoConsole(   83): [JavaScript Error: "NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIMessageSender.sendAsyncMessage]" {file: "resource://gre/modules/ActivitiesService.jsm" line: 360}]
04-05 18:32:35.850 I/Gecko   (   83): [Parent 83] WARNING: waitpid failed pid:364 errno:10: file ../../../gecko/ipc/chromium/src/base/process_util_posix.cc, line 254
04-05 18:32:35.880 I/Gonk    (   83): Setting nice for pid 479 to 18
04-05 18:32:35.890 I/Gonk    (   83): Changed nice for pid 479 from 18 to 18.
04-05 18:32:35.890 I/Gecko   (   83): [Parent 83] WARNING: waitpid failed pid:479 errno:10: file ../../../gecko/ipc/chromium/src/base/process_util_posix.cc, line 254
04-05 18:32:35.900 I/Gonk    (   83): Setting nice for pid 479 to 1
04-05 18:32:35.900 I/Gonk    (   83): Changed nice for pid 479 from 18 to 1.
04-05 18:32:36.180 E/[Gralloc-ERROR](   83): int gralloc_register_buffer(const gralloc_module_t*, const native_handle_t*):79 Unable to register handle 0x42cb4e20 coming from different process: 83
04-05 18:32:36.190 E/[Gralloc-ERROR](   83): int gralloc_register_buffer(const gralloc_module_t*, const native_handle_t*):79 Unable to register handle 0x42ccf600 coming from different process: 83
04-05 18:32:36.360 E/[Gralloc-ERROR](   83): int gralloc_unregister_buffer(const gralloc_module_t*, const native_handle_t*):274 Trying to unregister buffer 0x42cb4e20 from process 83 that was not created in current process: 83
04-05 18:32:36.360 E/[Gralloc-ERROR](   83): int gralloc_unregister_buffer(const gralloc_module_t*, const native_handle_t*):274 Trying to unregister buffer 0x42ccf600 from process 83 that was not created in current process: 83
04-05 18:32:37.010 E/GeckoConsole(  479): Content JS ERROR at app://homescreen.gaiamobile.org/gaia_build_defer_index.js:386 in loadSVConfFileError: Failed parsing singleVariant configuration file [js/singlevariantconf.json]:  [Exception... "File error: Not found"  nsresult: "0x80520012 (NS_ERROR_FILE_NOT_FOUND)"  location: "JS frame :: app://homescreen.gaiamobile.org/gaia_build_defer_index.js :: loadFile :: line 378"  data: no]
04-05 18:32:37.850 I/Gecko   (   83): [Parent 83] WARNING: waitpid failed pid:364 errno:10: file ../../../gecko/ipc/chromium/src/base/process_util_posix.cc, line 254
04-05 18:32:37.850 I/Gecko   (   83): [Parent 83] WARNING: Failed to deliver SIGKILL to 364!(3).: file ../../../gecko/ipc/chromium/src/chrome/common/process_watcher_posix_sigchld.cc, line 118
04-05 18:32:38.420 E/GeckoConsole(  479): Content JS WARN at app://homescreen.gaiamobile.org/gaia_build_defer_index.js:181 in isHiddenApp: Unexpected role when checking hidden app: undefined
04-05 18:32:38.420 E/GeckoConsole(  479): Content JS WARN at app://homescreen.gaiamobile.org/gaia_build_defer_index.js:181 in isHiddenApp: Unexpected role when checking hidden app: undefined
04-05 18:32:38.420 D/Sensors (   83): SensorTMD2771::readEvents()======data_fd=53,count=16
04-05 18:32:38.420 D/Sensors (   83): SensorTMD2771::processEvent()=====code=40::value=507 
04-05 18:32:38.420 D/Sensors (   83): SensorTMD2771: mPendingEvents[Light].light = 507.000000

It looks like the homescreen is being killed, and then restarts.
Bingqing, can you attach your test image to this bug? I can't reproduce so far...
Flags: needinfo?(bli)
The LOGE about Gralloc seems OK, while it returns error code 0 to Framework. We can not detect such things at Gecko side. (In fact, the condition to the log it looks very strange to me.)

By comment#12 it seems the homescreen get killed, by comment#9 it seems the gallery get killed. 

Can we add more informative log when OOM killer kill some process? I usually see a bug like this with some log, but it usually hard to tell the bug is an OOM problem or something else...However, while trying to reproduce it, it is an OOM problem.

I think if we can log which app get killed by OOM killer and log all app available(and its pid) when OOM killer is going to kill some app, we can save a lot of time to recognize OOM problems.
Flags: needinfo?(chung) → needinfo?(ahuang)
Attached image test image
Here is the test image that I used.
Flags: needinfo?(bli)
(In reply to Chiajung Hung [:chiajung] from comment #14)
> Can we add more informative log when OOM killer kill some process? I usually
> see a bug like this with some log, but it usually hard to tell the bug is an
> OOM problem or something else...However, while trying to reproduce it, it is
> an OOM problem.

Actually we already have this in kernel log, both oom-killer and low memory killer :)

See https://wiki.mozilla.org/B2G/Debugging_OOMs#Step_1:_Verify_that_it.27s_actually_an_OOM
Flags: needinfo?(ahuang)
Depends on: 992760
This is no longer a Gaia/Gallery bug.
Component: Gaia::Gallery → General
ni? Thinker
Flags: needinfo?(tlee)
I still can't reproduce with Bingqing picture :(
QA Wanted to retest and clarify STR.
Flags: needinfo?(bli)
Keywords: qawanted
Component: General → DOM: Device Interfaces
Product: Firefox OS → Core
Version: unspecified → 28 Branch
Fabrice, shouldn't be group homescreen and gallery into the same process if gallery image picker is launched by homescreen? Why did the Homescreen got killed in the background?
Flags: needinfo?(fabrice)
(In reply to Tim Guan-tin Chien [:timdream] (MoCo-TPE) (please ni?) from comment #21)
> Fabrice, shouldn't be group homescreen and gallery into the same process if
> gallery image picker is launched by homescreen? Why did the Homescreen got
> killed in the background?

That's correct. I think that bug reproduces only if the homescreen has been killed already before, which makes me think that it's the same issue as bug 991023
Flags: needinfo?(fabrice)
Yeah, we need a definite STR to tell (qawanted is already set).
I can reproduce this bug with the same steps that I mentioned in description.
I'll upload a video.
Flags: needinfo?(bli)
Attached video STR-Video
Build Info:
---------------------------------------------------
Gaia      bbba09c732c35d9434ecb04d5e2e41d05511f4d9
Gecko     https://hg.mozilla.org/releases/mozilla-b2g28_v1_3t/rev/65b4c58a7da9
BuildID   20140410164004
Version   28.1
ro.build.version.incremental=eng.cltbld.20140410.210129
ro.build.date=Thu Apr 10 21:01:38 EDT 2014
Keywords: qawanted
Tim/Fabrice, is this the same issue as bug 991023? given we have a video now? thanks
Flags: needinfo?(tlee)
Flags: needinfo?(timdream)
Flags: needinfo?(fabrice)
(In reply to Joe Cheng [:jcheng] from comment #26)
> Tim/Fabrice, is this the same issue as bug 991023? given we have a video
> now? thanks

I think so, that will be easy to verify once 991023 is uplifted.
Flags: needinfo?(fabrice)
The log doesn't should the same error. I didn't check the e-mail.
Flags: needinfo?(timdream)
I was meant to say "The log doesn't show the same error; I didn't check the video yet."
OK, I've just checked the Video. I suspect this bug is not a dup of bug 991023, if the build being tested have the patch applied locally.

I think the foreground gallery app and homescreen is killed altogether since this picker requires too much memory to view/chop that image. Fabrice, what do you think?
Flags: needinfo?(fabrice)
I agree with Tim, that looks like the homescreen+gallery, running in the same process are being oom-killed. Strangely I can't repro with the same image.
Flags: needinfo?(fabrice)
ni? mike to reproduce. Mike, pls help to reproduce it. Thanks.
Flags: needinfo?(mlien)
Keywords: qawanted
Attached file mem-record.txt
verify with today's daily build and it's hard to reproduce
reproduce rate: 2/15

Gaia      b2802627a974795ccba989cede0540f20fadc633
Gecko     https://hg.mozilla.org/releases/mozilla-b2g28_v1_3t/rev/c8491a42d4e8
BuildID   20140413164001
Version   28.1

refer to the last 5 memory records (get b2g-info every second)
if memory pressure is high, it will happen
the last 5 memory records show home screen's USS will clean to 0 and resume
while this point is set gallery image to wallpaper fail and homescreen looks relaunched
Flags: needinfo?(mlien)
Keywords: qawanted
triage: since the reproduce rate is much lower now, the triage team does not think this is a blocker anymore.
ni? Steven to confirm thanks
blocking-b2g: 1.3T+ → backlog
Flags: needinfo?(styang)
2/15 the repro rate is still now aceeptable - still need to fix it.
blocking-b2g: backlog → 1.3T?
Flags: needinfo?(styang)
Tested this on April 15th build; I've cycled through wallpapering each of 3 jpgs (2.0, 2.2, and 2.4 mb) more than 10 times.  Cannot repro.

Note that this was without applying memory pressure.  Feel free to NI me on the bug to test if needed with memory pressure.
triage: 1.3T+ to add some limitation in gallery picker. to John
Assignee: nobody → johu
blocking-b2g: 1.3T? → 1.3T+
Since we are going to limit the pixel size, 2MP, it depends on bug 995148 (change the limitation to 2MP and add file size limitation to gif) and bug 997051 (the viewer doesn't honor the limitation).
Depends on: 995148, 997051
No longer depends on: 992760
This case should be resolved once 2mp limit is set, see bug 998228.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 998228
No, if the picture is not from camera, bug 998228 patch can fix it.
Status: RESOLVED → REOPENED
Resolution: DUPLICATE → ---
Whiteboard: [priority] → [priority][sprd296553]
James,

The patch from bug 998228 not only limits camera resolution but also gallery app. Gallery app will not accept any images whose resolution is above 2MP. So, the patch of bug 998228 does fix it.
Flags: needinfo?(james.zhang)
(In reply to John Hu [:johnhu][:johu][:醬糊小弟] from comment #41)
> James,
> 
> The patch from bug 998228 not only limits camera resolution but also gallery
> app. Gallery app will not accept any images whose resolution is above 2MP.
> So, the patch of bug 998228 does fix it.

OK, thanks for your comment.
Status: REOPENED → RESOLVED
Closed: 6 years ago6 years ago
Flags: needinfo?(james.zhang)
Resolution: --- → FIXED
Verified the fix.  I am no longer able to select images above 2MP and was unable to reproduce this using images smaller than that.

1.3 Environmental Variables:
Device: Tarako 1.3 MOZ
BuildID: 20140429014002
Gaia: b5adc5a943d3abbd6ab070a47c847f2c24891cc5
Gecko: e9890f5d4709
Version: 28.1
Firmware Version: sp6821
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.