Closed Bug 691071 Opened 13 years ago Closed 13 years ago

debug build of android crash on tegra during startup

Categories

(Firefox for Android Graveyard :: General, defect)

ARM
Android
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INVALID

People

(Reporter: jmaher, Assigned: glandium)

References

Details

(Keywords: intermittent-failure, Whiteboard: [mobile_unittests][android_tier_1])

Attachments

(1 file)

Taking the latest debug build of android produced from mozilla-central, I run into a crash while starting up the test:

I/ActivityManager( 1021): Starting activity: Intent { act=android.intent.action.VIEW dat=http://192.168.1.109:8888/jsreftest/tests/jstests.list flg=0x10000000 pkg=org.mozilla.fennec cmp=org.mozilla.fennec/.App (has extras) }
I/ActivityManager( 1021): Start proc org.mozilla.fennec for activity org.mozilla.fennec/.App: pid=4399 uid=10034 gids={3003, 1015, 1007, 1006}
D/dalvikvm( 1448): GC_EXPLICIT freed 1398 objects / 162776 bytes in 95ms
I/wpa_supplicant( 1335): CTRL-EVENT-STATE-CHANGE id=-1 state=1
V/WifiMonitor( 1021): Event [CTRL-EVENT-STATE-CHANGE id=-1 state=1]
V/WifiStateTracker( 1021): Changing supplicant state: SCANNING ==> INACTIVE
D/NetworkStateTracker( 1021): setDetailed state, old =SCANNING and new state=IDLE
D/ConnectivityService( 1021): Dropping ConnectivityChange for WIFI: DISCONNECTED/IDLE
D/dalvikvm( 1448): GC_EXPLICIT freed 344 objects / 53872 bytes in 75ms
D/dalvikvm( 4399): GC_FOR_MALLOC freed 2023 objects / 151456 bytes in 36ms
I/GeckoApp( 4399): create
I/GeckoApp( 4399): Checking for an update
I/GeckoApp( 4399): start
I/dalvikvm( 4399): Could not find method android.hardware.Camera.getNumberOfCameras, referenced from method org.mozilla.gecko.GeckoAppShell.initCamera
W/dalvikvm( 4399): VFY: unable to resolve static method 129: Landroid/hardware/Camera;.getNumberOfCameras ()I
D/dalvikvm( 4399): VFY: replacing opcode 0x71 at 0x004b
I/dalvikvm( 4399): Could not find method android.hardware.Camera.open, referenced from method org.mozilla.gecko.GeckoAppShell.initCamera
W/dalvikvm( 4399): VFY: unable to resolve static method 131: Landroid/hardware/Camera;.open (I)Landroid/hardware/Camera;
D/dalvikvm( 4399): VFY: replacing opcode 0x71 at 0x0053
D/dalvikvm( 4399): VFY: dead code 0x004e-0051 in Lorg/mozilla/gecko/GeckoAppShell;.initCamera (Ljava/lang/String;III)[I
D/dalvikvm( 4399): VFY: dead code 0x0056-0176 in Lorg/mozilla/gecko/GeckoAppShell;.initCamera (Ljava/lang/String;III)[I
D/dalvikvm( 4399): VFY: dead code 0x0190-0192 in Lorg/mozilla/gecko/GeckoAppShell;.initCamera (Ljava/lang/String;III)[I
D/dalvikvm( 4399): Trying to load lib /data/data/org.mozilla.fennec/lib/libmozutils.so 0x4430a418
D/dalvikvm( 4399): Added shared lib /data/data/org.mozilla.fennec/lib/libmozutils.so 0x4430a418
D/dalvikvm( 4399): No JNI_OnLoad found in /data/data/org.mozilla.fennec/lib/libmozutils.so 0x4430a418, skipping init
I/GeckoAppShell( 4399): env0: ANDROID_SOCKET_zygote=10
I/GeckoAppShell( 4399): env1: ANDROID_BOOTLOGO=1
I/GeckoAppShell( 4399): env2: EXTERNAL_STORAGE=/mnt/sdcard
I/GeckoAppShell( 4399): env3: ANDROID_ASSETS=/system/app
I/GeckoAppShell( 4399): env4: ASEC_MOUNTPOINT=/mnt/asec
I/GeckoAppShell( 4399): env5: PATH=/sbin:/system/sbin:/system/bin:/system/xbin
I/GeckoAppShell( 4399): env6: ANDROID_DATA=/data
I/GeckoAppShell( 4399): env7: BOOTCLASSPATH=/system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/com.nvidia.graphics.jar
I/GeckoAppShell( 4399): env8: ANDROID_PROPERTY_WORKSPACE=9,32768
I/GeckoAppShell( 4399): env9: ANDROID_ROOT=/system
I/GeckoAppShell( 4399): env10: LD_LIBRARY_PATH=/system/lib
I/GeckoAppShell( 4399): env11: MOZ_CRASHREPORTER_NO_REPORT=1
I/GeckoAppShell( 4399): env12: MOZ_CRASHREPORTER=1
I/GeckoAppShell( 4399): env13: XPCOM_MEM_BLOAT_LOG=/tmp/tmpvNNtBm/runreftest_leaks.log
I/GeckoAppShell( 4399): env14: XPCOM_DEBUG_BREAK=stack
I/GeckoAppShell( 4399): env15: MOZ_PROCESS_LOG=/tmp/tmpuRQVJPpidlog
I/GeckoAppShell( 4399): env16: NO_EM_RESTART=1
I/GeckoAppShell( 4399): env17: null
I/GeckoApp( 4399): resume
W/InputManagerService( 1021): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@4450a838 (uid=10031 pid=1448)
I/GeckoSurfaceView( 4399): surface created
I/GeckoSurfaceView( 4399): surfaceChanged: fmt: -1 dim: 1600 1175
I/ActivityManager( 1021): Displayed activity org.mozilla.fennec/.App: 450 ms (total 450 ms)
E/GeckoLibLoad( 4399): resolved libmozalloc.so to /data/data/org.mozilla.fennec/cache/libmozalloc.so
E/GeckoLibLoad( 4399): libmozalloc.so: spent 16930
E/GeckoLibLoad( 4399): resolved libnspr4.so to /data/data/org.mozilla.fennec/cache/libnspr4.so
E/GeckoLibLoad( 4399): libnspr4.so: spent 38936
E/GeckoLibLoad( 4399): resolved libplc4.so to /data/data/org.mozilla.fennec/cache/libplc4.so
E/GeckoLibLoad( 4399): libplc4.so: spent 27119
E/GeckoLibLoad( 4399): resolved libplds4.so to /data/data/org.mozilla.fennec/cache/libplds4.so
E/GeckoLibLoad( 4399): libplds4.so: spent 22732
E/GeckoLibLoad( 4399): resolved libmozsqlite3.so to /data/data/org.mozilla.fennec/cache/libmozsqlite3.so
E/GeckoLibLoad( 4399): libmozsqlite3.so: spent 247655
E/GeckoLibLoad( 4399): resolved libnssutil3.so to /data/data/org.mozilla.fennec/cache/libnssutil3.so
E/GeckoLibLoad( 4399): libnssutil3.so: spent 55698
E/GeckoLibLoad( 4399): resolved libnss3.so to /data/data/org.mozilla.fennec/cache/libnss3.so
E/GeckoLibLoad( 4399): Couldn't load /data/data/org.mozilla.fennec/cache/libnss3.so because Cannot load library: link_image[2046]: failed to link libnss3.so
E/GeckoLibLoad( 4399): libnss3.so: spent 276113
E/GeckoLibLoad( 4399): resolved libssl3.so to /data/data/org.mozilla.fennec/cache/libssl3.so
E/GeckoLibLoad( 4399): Couldn't load /data/data/org.mozilla.fennec/cache/libssl3.so because Cannot load library: link_image[2046]: failed to link libssl3.so
E/GeckoLibLoad( 4399): libssl3.so: spent 93572
E/GeckoLibLoad( 4399): resolved libsmime3.so to /data/data/org.mozilla.fennec/cache/libsmime3.so
E/GeckoLibLoad( 4399): Couldn't load /data/data/org.mozilla.fennec/cache/libsmime3.so because Cannot load library: link_image[2046]: failed to link libsmime3.so
E/GeckoLibLoad( 4399): libsmime3.so: spent 58890
E/GeckoLibLoad( 4399): resolved libxul.so to /data/data/org.mozilla.fennec/cache/libxul.so
E/GeckoLibLoad( 4399): Couldn't load /data/data/org.mozilla.fennec/cache/libxul.so because Cannot load library: link_image[2046]: failed to link libxul.so
E/GeckoLibLoad( 4399): libxul.so: spent 4786889
E/GeckoLibLoad( 4399): resolved libxpcom.so to /data/data/org.mozilla.fennec/cache/libxpcom.so
E/GeckoLibLoad( 4399): Couldn't load /data/data/org.mozilla.fennec/cache/libxpcom.so because Cannot load library: link_image[2046]: failed to link libxpcom.so
E/GeckoLibLoad( 4399): libxpcom.so: spent 18018
E/GeckoLibLoad( 4399): resolved libnssckbi.so to /data/data/org.mozilla.fennec/cache/libnssckbi.so
E/GeckoLibLoad( 4399): libnssckbi.so: spent 176333
E/GeckoLibLoad( 4399): resolved libfreebl3.so to /data/data/org.mozilla.fennec/cache/libfreebl3.so
E/GeckoLibLoad( 4399): libfreebl3.so: spent 56058
E/GeckoLibLoad( 4399): resolved libsoftokn3.so to /data/data/org.mozilla.fennec/cache/libsoftokn3.so
E/GeckoLibLoad( 4399): libsoftokn3.so: spent 81144
E/GeckoLibLoad( 4399): Couldn't get a handle to libxul!
E/GeckoLibLoad( 4399): Loaded libs in 5959ms total, 700ms user, 510ms system, 22 faults
I/DEBUG   (  937): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG   (  937): Build fingerprint: 'nvidia/harmony/harmony/harmony:2.2/FRF91/20101105.183900:eng/test-keys'
I/DEBUG   (  937): pid: 4399, tid: 4409  >>> org.mozilla.fennec <<<
I/DEBUG   (  937): signal 11 (SIGSEGV), fault addr 00000000
I/DEBUG   (  937):  r0 00205048  r1 44384520  r2 42944fc4  r3 00000000
I/DEBUG   (  937):  r4 47c97b70  r5 00000000  r6 44384520  r7 47c97b40
I/DEBUG   (  937):  r8 47c97b50  r9 42944f84  10 42944f70  fp 00221918
I/DEBUG   (  937):  ip 80c19361  sp 47c97b40  lr 80c19377  pc 00000000  cpsr a0000010
I/DEBUG   (  937):  d0  0000005042a00000  d1  0000000042a00000
I/DEBUG   (  937):  d2  3f8000003f800000  d3  c16da00040718000
I/DEBUG   (  937):  d4  4113200000000000  d5  000000004bb50000
I/DEBUG   (  937):  d6  c48ee00000093200  d7  3eaaaaab3f800000
I/DEBUG   (  937):  d8  0000000000000000  d9  0000000000000000
I/DEBUG   (  937):  d10 0000000000000000  d11 0000000000000000
I/DEBUG   (  937):  d12 0000000000000000  d13 0000000000000000
I/DEBUG   (  937):  d14 0000000000000000  d15 0000000000000000
I/DEBUG   (  937):  scr 80000012
I/DEBUG   (  937): 
I/DEBUG   (  937):          #00  pc 00000000  
I/DEBUG   (  937):          #01  lr 80c19377  /data/data/org.mozilla.fennec/lib/libmozutils.so
I/DEBUG   (  937): 
I/DEBUG   (  937): code around pc:
I/DEBUG   (  937): 
I/DEBUG   (  937): code around lr:
I/DEBUG   (  937): 80c19354 46180300 0718f107 bd8046bd b082b580 
I/DEBUG   (  937): 80c19364 6078af00 4b056039 681b447b 68396878 
I/DEBUG   (  937): 80c19374 f1074798 46bd0708 bf00bd80 00010e5c 
I/DEBUG   (  937): 80c19384 b084b580 60f8af00 607a60b9 447b4b05 
I/DEBUG   (  937): 80c19394 68f8681b 687a68b9 f1074798 46bd0710 
I/DEBUG   (  937): 
I/DEBUG   (  937): stack:
I/DEBUG   (  937):     47c97b00  00000000  
I/DEBUG   (  937):     47c97b04  afd10500  /system/lib/libc.so
I/DEBUG   (  937):     47c97b08  afd43728  /system/lib/libc.so
I/DEBUG   (  937):     47c97b0c  0021daa0  [heap]
I/DEBUG   (  937):     47c97b10  0024d958  [heap]
I/DEBUG   (  937):     47c97b14  0000a000  [heap]
I/DEBUG   (  937):     47c97b18  80816fc0  /system/lib/libdvm.so
I/DEBUG   (  937):     47c97b1c  00221918  [heap]
I/DEBUG   (  937):     47c97b20  42944f70  
I/DEBUG   (  937):     47c97b24  afd0be23  /system/lib/libc.so
I/DEBUG   (  937):     47c97b28  0021da70  [heap]
I/DEBUG   (  937):     47c97b2c  0022c3f8  [heap]
I/DEBUG   (  937):     47c97b30  00001400  
I/DEBUG   (  937):     47c97b34  00221918  [heap]
I/DEBUG   (  937):     47c97b38  df002777  
I/DEBUG   (  937):     47c97b3c  e3a070ad  
I/DEBUG   (  937): #00 47c97b40  44384520  /dev/ashmem/mspace/dalvik-heap/2 (deleted)
I/DEBUG   (  937):     47c97b44  00205048  [heap]
I/DEBUG   (  937):     47c97b48  42944f8c  
I/DEBUG   (  937):     47c97b4c  80816df8  /system/lib/libdvm.so
I/DEBUG   (  937):     47c97b50  00221918  [heap]
I/DEBUG   (  937):     47c97b54  4125edb8  /dev/ashmem/dalvik-LinearAlloc (deleted)
I/DEBUG   (  937):     47c97b58  44384520  /dev/ashmem/mspace/dalvik-heap/2 (deleted)
I/DEBUG   (  937):     47c97b5c  42944f84  
I/DEBUG   (  937):     47c97b60  80816fc0  /system/lib/libdvm.so
I/DEBUG   (  937):     47c97b64  00221918  [heap]
I/DEBUG   (  937):     47c97b68  47c97b70  
I/DEBUG   (  937):     47c97b6c  80844977  /system/lib/libdvm.so
I/DEBUG   (  937):     47c97b70  42944f84  
I/DEBUG   (  937):     47c97b74  42936348  /data/dalvik-cache/data@app@org.mozilla.fennec-1.apk@classes.dex
I/DEBUG   (  937):     47c97b78  80c19361  /data/data/org.mozilla.fennec/lib/libmozutils.so
I/DEBUG   (  937):     47c97b7c  47c97c28  
I/DEBUG   (  937):     47c97b80  47c97c28  
I/DEBUG   (  937):     47c97b84  00000001  
I/WindowManager( 1021): WIN DEATH: Window{444a0a48 org.mozilla.fennec/org.mozilla.fennec.App paused=false}
I/ActivityManager( 1021): Process org.mozilla.fennec (pid 4399) has died.
I/WindowManager( 1021): WIN DEATH: Window{44468b18 SurfaceView paused=false}
There was a fix for an Android debug startup crash checked in yesterday (bug 690856), but it looks like builds are still crashing.
Depends on: 690856
:blassey had mentioned a fix for debug builds and I waited until that fix produced a debug android build from m-c and tested it.
Which build was that exactly?
# cat /data/data/org.mozilla.fennec/application.ini
[App]
Vendor=Mozilla
Name=Fennec
Version=10.0a1
BuildID=20110930120933
SourceRepository=http://hg.mozilla.org/mozilla-central
SourceStamp=1463dc6308a8
ID={a23983c0-fd0e-11dc-95ff-0800200c9a66}

[Gecko]
MinVersion=1.9.2b5pre
MaxVersion=10.0a1

[XRE]
EnableExtensionManager=1

[Crash Reporter]
Enabled=1
ServerURL=https://crash-reports.mozilla.com/submit
#
This is a call on a null pointer, which happens in the Java_org_mozilla_gecko_GeckoAppShell_nativeRun wrapper function in libmozutils.so, because it couldn't get the corresponding function from libxul.so. It can't do so because libxul.so wasn't loaded, because a bunch of libs weren't loaded.

All in all, figure out why you get this:
E/GeckoLibLoad( 4399): Couldn't load /data/data/org.mozilla.fennec/cache/libnss3.so because Cannot load library: link_image[2046]: failed to link libnss3.so

and you'll have it figured. I'll take a look on monday.
Interestingly, on my Asus Transformer, the same build doesn't crash in the main process, but the content process crashes in a similar way, but with a slightly different root cause:

10-02 00:04:26.940 E/GeckoLibLoad( 3019): Couldn't load /data/data/org.mozilla.fennec/cache/libnss3.so because Cannot load library: reloc_library[1315]:  3019 cannot locate '__aeabi_llsl'...
I can reliably reproduce with that build, but I can't reproduce on latest tinderbox debug build nor on a custom debug build (neither current trunc nor revision 1463dc6308a8) :(
ok, I tried a build from this morning and it seems to be working fine.  I assume we can close this bug?
No :( I just tried a m-i build (704f37801611) and it crashes too.
Attached file dltest
On my Nexus S, depending on the build used, putting the attached dltest file in /data/local, the following command works or fails:
$ LD_LIBRARY_PATH=/data/data/org.mozilla.fennec/lib:/data/data/org.mozilla.fennec/cache /data/local/dltest /data/data/org.mozilla.fennec/cache/libnss3.so

When it fails, I get the following message:
Cannot load library: reloc_library[1311]:  <pid> cannot locate '__aeabi_llsl'...

All libnss3.so I tested (working and failing) do have an undefined __aeabi_llsl symbol, and all have a relocation for it. In theory, if the symbol could really not be located, we should see the error on all debug builds, but we don't.
So, here is what probably happens (you've got to love the toolchain):
- depending on optimization, other-licenses/android/linker_format.o requires __aeabi_llsl.
- when linking libmozutils.so, the linker pulls __aeabi_llsl from libgcc.a, and includes it.
- when linking libnss3.so, as some of its objects use __aeabi_llsl, the linker searches it in the various libraries, and finds it in libmozutils.so. It thus marks it undefined, generates a PLT for that function, and a corresponding GOT entry.
- now, something changes that makes other-licenses/android be rebuilt, and not include __aeabi_llsl.
- but libnss3.so is not rebuilt, so __aeabi_llsl is still undefined.
- at runtime, the linker goes through all relocations of libnss3.so, and can't find __aeabi_llsl in any of the libraries already loaded, since it's not in libmozutils.so anymore.

Workaround: clobber and rebuild.

Notes:
- clobber builds are unaffected. This includes nightlies. But we don't have debug nightly builds.
- on opt builds, we use our custom linker to load our libs instead of the system linker. Our linker does one thing that the system linker doesn't: it does dynamic resolution of symbols. IOW, we only resolve (some) symbols when they are needed. In practice, for this problem, this makes possible problem happen when __aeabi_llsl happens to be needed at run time, which, fortunately, seems to be not that often. This is why, by modifying a failing build, with an hex editor, so that it doesn't extract libraries and thus use our linker, I could get a working fennec. It would probably have crashed kind of randomly, much later.
- I had another kind of related issue on Debian powerpc, with a symbol that comes from libgcc.a and was defined by another library at link time. I think it's utterly stupid to apply common linking rules for things that are pretty much internal to the toolchain. I think the best way to avoid this would be to avoid __aeabi_* symbols to be exported from libmozutils.so.
Blocks: 438871
glandium can you take a look at this?
Assignee: nobody → mh+mozilla
it seems that doing a clobber build resolves this.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Resolution: FIXED → INVALID
Whiteboard: [orange][mobile_unittests][android_tier_1] → [mobile_unittests][android_tier_1]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: