Closed Bug 816334 Opened 12 years ago Closed 12 years ago

[Camera][Video] W/ passcode lock enabled, video camera doesn't work from lock screen. (and sometimes crashes when I hit home button from it)

Categories

(Firefox OS Graveyard :: Gaia::Camera, defect, P2)

ARM
Linux
defect

Tracking

(blocking-basecamp:+)

RESOLVED DUPLICATE of bug 818933
B2G C3 (12dec-1jan)
blocking-basecamp +

People

(Reporter: dholbert, Assigned: mikeh)

Details

(Keywords: b2g-testdriver, crash, unagi)

Attachments

(1 file)

STR:
 1. Enable a passcode lock, in Settings | Phone Lock (e.g. 1111)
 2. Tap power button twice, to get to lock screen.
 3. Slide up the lock animation, and tap the camera button.
    (if camera won't activate (happens for me sometimes), just reboot phone)
 4. Tap the video button, to switch into video mode.
 5. Try to take a video (tap the video button again)

EXPECTED RESULTS: Video camera starts recording.

ACTUAL RESULTS: Controls darken slightly, but video doesn't start recording.

If I examine logcat output, it's a continuous spamming of this, at this point:
{
11-28 16:38:56.109 E/libgenlock(  725): perform_lock_unlock_operation: GENLOCK_IOC_LOCK failed (lockType0x1, err=Invalid argument fd=193)
11-28 16:38:56.109 E/QualcommCameraHardware(  725): runPreviewThread: genlock_lock_buffer(WRITE) failed
11-28 16:38:56.239 E/libgenlock(  725): perform_lock_unlock_operation: GENLOCK_IOC_LOCK failed (lockType0x1, err=Invalid argument fd=181)
11-28 16:38:56.239 E/QualcommCameraHardware(  725): runPreviewThread: genlock_lock_buffer(WRITE) failed
11-28 16:38:56.349 E/QualcommCameraHardware(  725): runPreviewThread: buffer to be enqueued is unlocked
11-28 16:38:56.419 E/QualcommCameraHardware(  725): runPreviewThread: buffer to be enqueued is unlocked
11-28 16:38:56.479 E/libgenlock(  725): perform_lock_unlock_operation: GENLOCK_IOC_LOCK failed (lockType0x1, err=Invalid argument fd=150)
11-28 16:38:56.479 E/QualcommCameraHardware(  725): runPreviewThread: genlock_lock_buffer(WRITE) failed
11-28 16:38:56.669 E/QualcommCameraHardware(  725): runPreviewThread: buffer to be enqueued is unlocked
11-28 16:38:56.719 E/libgenlock(  725): perform_lock_unlock_operation: GENLOCK_IOC_LOCK failed (lockType0x1, err=Invalid argument fd=166)
11-28 16:38:56.719 E/QualcommCameraHardware(  725): runPreviewThread: genlock_lock_buffer(WRITE) failed
11-28 16:38:56.839 E/libgenlock(  725): perform_lock_unlock_operation: GENLOCK_IOC_LOCK failed (lockType0x1, err=Invalid argument fd=193)
11-28 16:38:56.839 E/QualcommCameraHardware(  725): runPreviewThread: genlock_lock_buffer(WRITE) failed
11-28 16:38:56.919 E/QualcommCameraHardware(  725): runPreviewThread: buffer to be enqueued is unlocked
11-28 16:38:57.049 E/QualcommCameraHardware(  725): runPreviewThread: buffer to be enqueued is unlocked
11-28 16:38:57.109 E/libgenlock(  725): perform_lock_unlock_operation: GENLOCK_IOC_LOCK failed (lockType0x1, err=Invalid argument fd=199)
11-28 16:38:57.109 E/QualcommCameraHardware(  725): runPreviewThread: genlock_lock_buffer(WRITE) failed
11-28 16:38:57.339 E/QualcommCameraHardware(  725): runPreviewThread: buffer to be enqueued is unlocked
11-28 16:38:57.339 E/libgenlock(  725): perform_lock_unlock_operation: GENLOCK_IOC_LOCK failed (lockType0x1, err=Invalid argument fd=187)
11-28 16:38:57.339 E/QualcommCameraHardware(  725): runPreviewThread: genlock_lock_buffer(WRITE) failed
11-28 16:38:57.539 E/QualcommCameraHardware(  725): runPreviewThread: buffer to be enqueued is unlocked
11-28 16:38:57.589 E/libgenlock(  725): perform_lock_unlock_operation: GENLOCK_IOC_LOCK failed (lockType0x1, err=Invalid argument fd=144)
11-28 16:38:57.589 E/QualcommCameraHardware(  725): runPreviewThread: genlock_lock_buffer(WRITE) failed
11-28 16:38:57.789 E/QualcommCameraHardware(  725): runPreviewThread: buffer to be enqueued is unlocked
11-28 16:38:57.839 E/libgenlock(  725): perform_lock_unlock_operation: GENLOCK_IOC_LOCK failed (lockType0x1, err=Invalid argument fd=181)
11-28 16:38:57.839 E/QualcommCameraHardware(  725): runPreviewThread: genlock_lock_buffer(WRITE) failed
11-28 16:38:57.959 E/libgenlock(  725): perform_lock_unlock_operation: GENLOCK_IOC_LOCK failed (lockType0x1, err=Invalid argument fd=175)
11-28 16:38:57.959 E/QualcommCameraHardware(  725): runPreviewThread: genlock_lock_buffer(WRITE) failed
11-28 16:38:58.089 E/QualcommCameraHardware(  725): runPreviewThread: buffer to be enqueued is unlocked
}

At this point, if I hit the "home" button and unlock my phone, I see a permissions screen saying "System would like to require your Videos".  If I wait a few more seconds, the phone crashes and reboots. (This seems to be a time-bomb after I hit the home button, and happens w/in 10-15 seconds of that happening.)  This is in my logcat when the phone reboots:
{
11-28 16:40:23.659 V/QualcommCameraHardware(  725): stopPreview: E
11-28 16:40:23.659 I/QualcommCameraHardware(  725): stopPreviewInternal E: 0
11-28 16:40:23.659 E/QualcommCameraHardware(  725): stopPreviewInternal, J_mCameraRunning = 0
11-28 16:40:23.659 E/QualcommCameraHardware(  725): stopPreviewInternal, before calling deinitpre mPreviewInitialized = 0
11-28 16:40:23.659 I/QualcommCameraHardware(  725): stopPreviewInternal X: 0
11-28 16:40:23.659 V/QualcommCameraHardware(  725): stopPreview: X
11-28 16:40:23.659 E/QualcommCamera(  725): Qvoid android::release(camera_device*): E
11-28 16:40:23.659 I/QualcommCameraHardware(  725): release E
11-28 16:40:23.659 I/QualcommCameraHardware(  725): release: mCameraRunning = 0
11-28 16:40:23.669 V/QualcommCameraHardware(  725): deinitRaw E
11-28 16:40:23.669 V/QualcommCameraHardware(  725): deinitRaw , clearing raw memory and jpeg memory
11-28 16:40:23.669 E/QualcommCameraHardware(  725): deinitRaw , clearing/cancelling thumbnail buffers:
11-28 16:40:23.669 V/QualcommCameraHardware(  725): deinitRaw X
11-28 16:40:23.669 V/QualcommCameraHardware(  725): deinitRawSnapshot E
11-28 16:40:23.669 V/QualcommCameraHardware(  725): deinitRawSnapshot X
11-28 16:40:23.669 I/QualcommCameraHardware(  725): release: clearing resources done.
11-28 16:40:23.669 E/CAM_FD  (  725): cam_conf: CAMERA_EXIT
11-28 16:40:23.669 I/QualcommCameraHardware(  725): release X: mCameraRunning = 0, mFrameThreadRunning = 0
11-28 16:40:23.669 I/QualcommCameraHardware(  725): mVideoThreadRunning = 0, mSnapshotThreadRunning = 0, mJpegThreadRunning = 0
11-28 16:40:23.669 I/QualcommCameraHardware(  725): camframe_timeout_flag = 0, mAutoFocusThreadRunning = 0
11-28 16:40:23.669 D/memalloc(  725): /dev/pmem_adsp: Freeing buffer base:0x480fe000 size:155648 fd:136
11-28 16:40:23.669 D/memalloc(  725): /dev/pmem_adsp: Freeing buffer base:0x49ab6000 size:155648 fd:147
11-28 16:40:23.669 D/memalloc(  725): /dev/pmem_adsp: Freeing buffer base:0x4c837000 size:155648 fd:153
11-28 16:40:23.669 D/memalloc(  725): /dev/pmem_adsp: Freeing buffer base:0x4dc36000 size:155648 fd:169
11-28 16:40:23.669 D/memalloc(  725): /dev/pmem_adsp: Freeing buffer base:0x4e1d3000 size:155648 fd:178
11-28 16:40:23.669 D/memalloc(  725): /dev/pmem_adsp: Freeing buffer base:0x4e4c0000 size:155648 fd:184
11-28 16:40:23.669 D/memalloc(  725): /dev/pmem_adsp: Freeing buffer base:0x4e8a3000 size:155648 fd:190
11-28 16:40:23.669 D/memalloc(  725): /dev/pmem_adsp: Freeing buffer base:0x4ea49000 size:155648 fd:196
11-28 16:40:23.679 D/memalloc(  725): /dev/pmem_adsp: Freeing buffer base:0x4eb05000 size:155648 fd:202
11-28 16:40:23.679 E/QualcommCamera(  725): Qint android::close_camera_device(hw_device_t*): device =0x4705dba0 E
11-28 16:40:23.679 I/QualcommCamera(  725): void android::close_Hal_obj(camera_device*): E
11-28 16:40:23.679 I/QualcommCamera(  725): void android::close_Hal_obj(camera_device*): clear hw
11-28 16:40:23.679 I/QualcommCameraHardware(  725): ~QualcommCameraHardware E
11-28 16:40:23.679 V/QualcommCameraHardware(  725): ~MMCameraDL: E
11-28 16:40:23.839 I/ONCRPC  (  113): rpc_handle_rpc_call: for Xid: 17f, Prog: 31000000, Vers: fc37ad5c, Proc: 00000012
11-28 16:40:23.839 I/ONCRPC  (  113): rpc_handle_rpc_call: Find Status: 0 Xid: 17f
11-28 16:40:23.839 I/ONCRPC  (  113): oncrpc_proxy_handle_cmd_rpc_call: Dispatching xid: 17f
11-28 16:40:23.919 V/QualcommCameraHardware(  725): closed MM Camera DL 
11-28 16:40:23.919 V/QualcommCameraHardware(  725): ~MMCameraDL: X
11-28 16:40:23.919 I/QualcommCameraHardware(  725): ~QualcommCameraHardware X
}
The passcode lock seems to be important because this loads the camera app in a "restricted" mode (e.g. w/out the button for entering gallery, and with apparently other restrictions that prevent it from taking video)

If I remove the passcode lock from my phone, then I get EXPECTED RESULTS.

I'm running today's stable dogfood B2G release, BTW -- build ID 20121127132302
Keywords: crash
Attached image permissions dialog
Here's the permissions dialog that appears, if I unlock my phone quickly enough after hitting "home". (as described @ second half of comment 0)
Not blocker 'cause need too much parameters to be reproducible
blocking-basecamp: ? → -
Could you get us a crash ID?

You should be able to grab that out of this:
adb shell ls -l /data/b2g/mozilla/Crash\ Reports/submitted/

(I'm just interested what kind of stacks we get with what kind of crashes, to become familiar with that scene.)
Using:

Gaia: 23ce635f2967712962ccb619eced1ccb072fc994
Gecko: 0b1ed65e1790e831d64b6cdf634352c93e0cb797

I do see that you are able to record video from the lockscreen. I crashed once, I will see if I can get the crash ID. But I don't see the permissions dialog that dholbert is seeing.
Oh, sorry -- I didn't see Comment 4 until now.  I'll see if I can get a crash ID.
bp-4ebb4893-428b-40d9-bd4d-83b302121204

(I can reproduce this 100% of the time, FWIW. Cww hit it on his dogfood phone when I told him about it, too.  I'm still on the (latest) stable dogfood build from comment 1.)
W/ new "beta" dogfood build, I don't see the permissions screen anymore, but I still can't take video, and I still crash.
Build ID: 20121203114956
Crash report ID: bp-ff183234-2cc3-4637-9e2e-d289d2121205
(In reply to dscravaglieri from comment #3)
> Not blocker 'cause need too much parameters to be reproducible

This is one of our worse known reproducible crashes (at least for dholbert and cww). Do you think the use of the home button to unlock makes this an uncommon user interaction? Seems pretty common to take a video from the lock screen and then unlock your phone.
blocking-basecamp: - → ?
Actually, I can't reproduce the crash part anymore. (though the video camera still doesn't work.)  Still using same beta build as in Comment 8; I don't know why I crashed then & not now.  Maybe the crash part has become sporadic.

(Not resolving as WORKSFORME though, because the lockscreen video camera is still non-functional, even if it doesn't crash.)
Ah, nevermind -- I just reproduced the crash again.
Summary: [Camera][Video] W/ passcode lock enabled, video camera doesn't work from lock screen. (also triggers permissions dialog and crash when I hit home button from it) → [Camera][Video] W/ passcode lock enabled, video camera doesn't work from lock screen. (and sometimes crashes when I hit home button from it)
I actually can record a video with those steps on my otoro, but after pressing the home button and unlocking (maybe "fast enough") the phone, I get it to crash.
My reports are bp-6ecb4656-9ba4-40f3-8ebf-0f5702121206 and bp-3a461b4b-f62f-4e9a-b8e3-520b32121206 - and the little bit of stack I get for those is apparently the same as the discussion in bug 817946 turned to now - this may be a double-free issue.
Ah, that's interesting -- I wonder if marcia was also using an otoro, in comment 5?  If so, perhaps the video-not-working part is hardware/driver-specific.
Assignee: nobody → dale
blocking-basecamp: ? → +
Priority: -- → P2
Target Milestone: --- → B2G C3 (12dec-1jan)
Assignee: dale → mhabicher
Hardware: x86_64 → ARM
I strongly suspect this is a duplicate of bug 818933.
Maybe, but I'd be a bit surprised. Note that the STR on this bug don't involve launching the normal camera app, or launching lockscreen camera multiple times.

The lockscreen video camera simply doesn't work, including the first time you launch it.
(In reply to Daniel Holbert [:dholbert] from comment #16)
> The lockscreen video camera simply doesn't work, including the first time
> you launch it.

Oh, wow -- I take that back! That *was* the case when I filed this bug, but it's not the case anymore.  (Just retried STR after booting up unagi phone, on latest dogfood build)

So the only remaining issue here is the sporadic crash, which indeed could be a duplicate of bug 818933.
(In reply to Daniel Holbert [:dholbert] from comment #17)
> 
> So the only remaining issue here is the sporadic crash, which indeed could
> be a duplicate of bug 818933.

Bug 818933 causes the viewfinder to never appear, but it shouldn't cause a crash.  Bug 819275 was causing a crash (though I see that patch has finally landed).  If you manage to cause the video camera to crash on (very) recent builds, please update this bug.  :)
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: