Last Comment Bug 777187 - Implement a useful set of crash report annotations for B2G
: Implement a useful set of crash report annotations for B2G
Status: RESOLVED FIXED
[WebAPI:P0][LOE:S]
:
Product: Firefox OS
Classification: Client Software
Component: General (show other bugs)
: unspecified
: ARM Gonk (Firefox OS)
: -- normal (vote)
: ---
Assigned To: Hubert Figuiere [:hub]
:
:
Mentors:
Depends on: 777145 789466 795161
Blocks: b2g-crash-reporting 806515
  Show dependency treegraph
 
Reported: 2012-07-24 17:41 PDT by Ted Mielczarek [:ted.mielczarek]
Modified: 2012-10-29 13:03 PDT (History)
10 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
+


Attachments
Bug 777187 - Annotate crash with hardware info. (2.32 KB, patch)
2012-09-27 19:26 PDT, Hubert Figuiere [:hub]
no flags Details | Diff | Splinter Review
Bug 777187 - Part 1: Annotate crash with Android hardware info. (2.46 KB, patch)
2012-10-03 10:30 PDT, Hubert Figuiere [:hub]
kairo: feedback+
Details | Diff | Splinter Review
Bug 777187 - Annotate crash with Android hardware info. (2.47 KB, patch)
2012-10-04 10:19 PDT, Hubert Figuiere [:hub]
fabrice: review+
Details | Diff | Splinter Review

Description Ted Mielczarek [:ted.mielczarek] 2012-07-24 17:41:40 PDT
Some things we'll probably want:
* App Info for crashes in apps (easier if they're all running in content processes)
* URLs for tabs in browser
* Others?

URLs simply get annotated in a "URL" field, which is already well-supported in Socorro. Any additional fields might need support in Socorro to be useful.
Comment 1 Robert Kaiser 2012-07-25 05:49:28 PDT
I think we might want to add an annotation on device name and vendor (which we'll want to use for Android as well, esp. given that the Adapter* annotations have now been corrected there to be about graphics chips).
Comment 2 Andrew Overholt [:overholt] 2012-08-20 10:40:06 PDT
Who should do this work, Ted?
Comment 3 Ted Mielczarek [:ted.mielczarek] 2012-08-20 10:56:05 PDT
Anyone who knows their way around the B2G code can do it, I'd expect it all to happen in the "chrome" JS. It's simply a matter of getting the crashreporter service and calling "AnnotateCrashReport" on it to add the data. The biggest part of the work is simply figuring out what annotations are useful and where to get the data.

You can see lots of existing examples in the source:
http://mxr.mozilla.org/mozilla-central/search?string=annotateCrashReport
Comment 4 Andrew Overholt [:overholt] 2012-08-22 10:35:08 PDT
Can you also take this one, Hub?
Comment 5 David Bolter [:davidb] 2012-09-14 06:59:58 PDT
Is there a final list somewhere of what we initially want to annotate crashes?

(Hub, what does LOE:S mean?)
Comment 6 Robert Kaiser 2012-09-14 07:04:35 PDT
I don't think there is a final list. And as long as we don't even have crash reporting working really at all, I don't intend to look into getting one together from a stability team POV.
Comment 7 Robert Kaiser 2012-09-26 09:30:33 PDT
Here's the list of annotations we get right now from a B2G OS/Gecko crash (this is the "raw JSON" as can be brought up by the selection of very trustworthy users we allow access to raw data - as this is from ourselves testing and there's no really personal info here, I'm just pasting it as-is):

{
    "submitted_timestamp": "2012-09-26T02:19:36.528600+00:00",
    "FramePoisonBase": "00000000f0dea000",
    "Vendor": "Mozilla",
    "InstallTime": "1348625891",
    "EMCheckCompatibility": "true",
    "buildid": "20120925191701",
    "SecondsSinceLastCrash": "37",
    "Notes": "EGL? EGL+ GL Context? GL Context+ GL Layers? GL Layers+ ",
    "CrashTime": "1348625960",
    "StartupTime": "1348625924",
    "ProductName": "B2G",
    "legacy_processing": 0,
    "BuildID": "20120925191701",
    "Theme": "classic/1.0",
    "Version": "18.0a1",
    "timestamp": 1348625976.528636,
    "version": "18.0a1",
    "FramePoisonSize": "4096",
    "ReleaseChannel": "default",
    "id": "{3c2e2abc-06d4-11e1-ac3b-374f68613e61}",
    "ProductID": "{3c2e2abc-06d4-11e1-ac3b-374f68613e61}"
}
Crash report page: bp-1686c846-75d4-48f9-90d8-300fa2120926

For comparison, here's the list of annotations we get right now from a Firefox for Android crash (this is from a random user, I have redacted the URL with XXXXX, the rest does not look like too personal information to me to paste it here, most of this is visible publicly in the crash report page):

{

    "InstallTime": "1348148824",
    "Android_Fingerprint": "samsung/SC-05D/SC-05D:4.0.4/IMM76D/OMLPL:user/release-keys",
    "FramePoisonSize": "4096",
    "Theme": "classic/1.0",
    "Version": "18.0a1",
    "id": "{aa3c5121-dab2-40e2-81ca-7ea25febc110}",
    "Android_Hardware": "qcom",
    "Vendor": "Mozilla",
    "EMCheckCompatibility": "true",
    "buildid": "20120920030543",
    "version": "18.0a1",
    "AdapterDeviceID": "Adreno (TM) 220",
    "Android_Device": "SC-05D",
    "Android_CPU_ABI2": "armeabi",
    "ReleaseChannel": "nightly",
    "submitted_timestamp": "2012-09-21T08:08:20.547359+00:00",
    "Android_CPU_ABI": "armeabi-v7a",
    "URL": "https://XXXX.XX/XXXXXXX/XXXXXX",
    "timestamp": 1348214900.54741,
    "Notes": "AdapterDescription: 'Qualcomm -- Adreno (TM) 220 -- OpenGL ES 2.0 2184622 -- Model: SC-05D, Product: SC-05D, Manufacturer: samsung, Hardware: qcom'\nEGL? EGL+ GL Context? GL Context+ GL Layers? GL Layers+ \nsamsung SC-05D\nsamsung/SC-05D/SC-05D:4.0.4/IMM76D/OMLPL:user/release-keys",
    "CrashTime": "1348214891",
    "Android_Display": "IMM76D.OMLPL",
    "Android_Manufacturer": "samsung",
    "StartupTime": "1348214865",
    "AdapterVendorID": "Qualcomm",
    "Android_Brand": "samsung",
    "FramePoisonBase": "00000000f0dea000",
    "Min_ARM_Version": "7",
    "Add-ons": "%7Bd10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d%7D:2.1.2",
    "BuildID": "20120920030543",
    "SecondsSinceLastCrash": "13197",
    "Android_Model": "SC-05D",
    "ProductName": "Fennec",
    "legacy_processing": 0,
    "Android_Version": "15 (REL)",
    "Android_Board": "MSM8660_SURF",
    "ProductID": "{aa3c5121-dab2-40e2-81ca-7ea25febc110}"
}
Crash report page: bp-7f0799e0-a71a-453b-8772-2b4142120921

You can see that on Android we have some additional fields there. On desktop, we also can have comment and email fields as annotations, we don't have any means to send them on mobile at this time and I also think we should not put them in there for B2G v1, as defining UI for them would be quite a lot of work, and we'd probably need to forcibly prompt for every crash with such a UI.

For now, I think we should figure out which fields from the Android version we should copy to a B2G version, possibly if we'd want something B2G-specific in a similar manner (focus on stuff we can expose publicly as we want community members to be able to help with working on stability).
Comment 8 Robert Kaiser 2012-09-27 08:34:24 PDT
Bug 789466 has landed for now and apparently sends a unique ID per dogfooding device in the Email field. This can only be a short-term workaround and surely violates all kinds of privacy rules, esp. if we do it for people who have not been made aware of the trackability - I guess it's OK for a short time if it's for Mozilla staff only.
Comment 9 Hubert Figuiere [:hub] 2012-09-27 19:26:25 PDT
Created attachment 665731 [details] [diff] [review]
Bug 777187 - Annotate crash with hardware info.

adb shell propget list all the properties we can fetch. if you have any suggestion...
Comment 10 Hubert Figuiere [:hub] 2012-09-27 19:27:28 PDT
Also you need the patch (r+) from bug 795161 to have this work.
Comment 11 Robert Kaiser 2012-09-27 19:28:45 PDT
I think it's a bad idea to have a patch here before we have discussed which annotations we even want in the first place.
Comment 12 Robert Kaiser 2012-09-27 19:30:28 PDT
Also, having completely different names and name styles then we have on Android makes this a pain for any crash analysis.
Comment 13 Hubert Figuiere [:hub] 2012-09-27 20:08:47 PDT
The gist of it is present. Let's discus a list of what we want and I'll be fine reworking it.
Comment 14 David Bolter [:davidb] 2012-09-28 12:49:52 PDT
(In reply to Robert Kaiser (:kairo@mozilla.com) from comment #12)
> Also, having completely different names and name styles then we have on
> Android makes this a pain for any crash analysis.

Kairo would it be reasonable to have a good detailed minimal first set and then add more as needed? I think you are experienced hearing what developers want (AKA crash annotation guru), so it probably makes sense for you to get us the initial list? I guess a polished/filtered version of comment 7?
Comment 15 Robert Kaiser 2012-09-29 13:21:29 PDT
Sure, we can do a smaller set first and go for more later. That said, I'd like compat across products where possible/reasonable so that we don't need to design the same thing multiple times on the server side (that's what comment #12 is about). Can I come back on Monday after looking at adb shell propget and propose where to go right now, or do you need feedback still before Sunday EOD for the freeze?

(All that said, thanks to Hub for working on this!)
Comment 16 David Bolter [:davidb] 2012-10-01 07:36:11 PDT
(In reply to Robert Kaiser (:kairo@mozilla.com) from comment #15)
> Sure, we can do a smaller set first and go for more later. That said, I'd
> like compat across products where possible/reasonable so that we don't need
> to design the same thing multiple times on the server side (that's what
> comment #12 is about). Can I come back on Monday after looking at adb shell
> propget and propose where to go right now, or do you need feedback still
> before Sunday EOD for the freeze?

I think we can get our first pass of useful annotations landed if we can get through the review cycle quickly enough. This stuff is super low risk will pay for itself over and over.
Comment 17 Robert Kaiser 2012-10-01 08:18:38 PDT
Hrm, looks like |adb shell propget| doesn't work with the latest otoro image, any other way I can see this list?

Also, as far as I get it, those are values that comes from the underlying Android system layer in Gonk, and probably depend on having an Android-based system underneath (which is OK right now), so can we just use the same variable names as http://hg.mozilla.org/mozilla-central/file/9e8a91dfbc7e/mobile/android/base/CrashReporter.java.in#l258 etc. right now? That way, we can share code for server-side analysis with Firefox for Android.


(In reply to David Bolter [:davidb] from comment #16)
> I think we can get our first pass of useful annotations landed if we can get
> through the review cycle quickly enough. This stuff is super low risk will
> pay for itself over and over.

It sure will pay, but before we have really usable crash reports (needs symbols, which needs build done by releng), very probably no crash report info will pay off at all, so as long as we are able to land good annotations before shipping cut-off, I don't feel that we need to rush this one (exactly because it's super low risk).
Comment 18 Hubert Figuiere [:hub] 2012-10-01 08:26:10 PDT
(In reply to Robert Kaiser (:kairo@mozilla.com) from comment #17)
> Hrm, looks like |adb shell propget| doesn't work with the latest otoro
> image, any other way I can see this list?

It does work on the Samsung Galaxy S2. That's actually what I used (no choice)
 
> Also, as far as I get it, those are values that comes from the underlying
> Android system layer in Gonk, and probably depend on having an Android-based
> system underneath (which is OK right now), so can we just use the same
> variable names as
> http://hg.mozilla.org/mozilla-central/file/9e8a91dfbc7e/mobile/android/base/
> CrashReporter.java.in#l258 etc. right now? That way, we can share code for
> server-side analysis with Firefox for Android.


I can do that and name them "Android_blah". I thought it was not appropriate, but maybe it is.
I already based my code on this what is done in this part, except that I annotate in the shell, not in the crash reporter submission code.
Comment 19 Robert Kaiser 2012-10-01 08:46:04 PDT
(In reply to Hub Figuiere [:hub] from comment #18)
> (In reply to Robert Kaiser (:kairo@mozilla.com) from comment #17)
> > Hrm, looks like |adb shell propget| doesn't work with the latest otoro
> > image, any other way I can see this list?
> 
> It does work on the Samsung Galaxy S2. That's actually what I used (no
> choice)

I get this output/error with our otoro image (and building myself doesn't work anyhow, I guess because of some incompatibility with gcc 4.7):
/system/bin/sh: propget: not found


Can you show me an output of what you are seeing?


FYI, I'd be most interested in AdapterVendorID, AdapterDeviceID, Android_Manufacturer, Android_Model, Android_CPU_ABI, and maybe Android_Version (though I'm unsure how much value that one has, actually) in that order of importance. For app crashes, I think we might want to expose the app origin as URL, just like we are doing for the desktop WebappRuntime.
I also wonder if we want to annotate anything specific to the B2G install, or if the usual data of version/channel/buildid already tells us enough to identify it (which might be the case).


> I can do that and name them "Android_blah". I thought it was not
> appropriate, but maybe it is.

Well, I think as long as we rely on values that are pulled out by Android code (which Gonk is using there), I believe it's fine to use Android_* annotations. If we ever go for using more generic sources of this data in the future, we might want to change that, but let's go with this as long as we rely on Android code to come up with those values.

> I already based my code on this what is done in this part, except that I
> annotate in the shell, not in the crash reporter submission code.

Sure. Actually, I don't know where it's best to do this, I guess someone like Ted would have more clue there.
Comment 20 Ted Mielczarek [:ted.mielczarek] 2012-10-01 09:57:33 PDT
(In reply to Robert Kaiser (:kairo@mozilla.com) from comment #19)
> Sure. Actually, I don't know where it's best to do this, I guess someone
> like Ted would have more clue there.

I have to admit I don't actually know where the Android annotations get set. If there's somewhere we can share that code that'd be great. If that's not feasible then doing it in the B2G shell code seems fine.
Comment 21 Hubert Figuiere [:hub] 2012-10-01 10:04:06 PDT
(In reply to Ted Mielczarek [:ted] from comment #20)
> (In reply to Robert Kaiser (:kairo@mozilla.com) from comment #19)
> > Sure. Actually, I don't know where it's best to do this, I guess someone
> > like Ted would have more clue there.
> 
> I have to admit I don't actually know where the Android annotations get set.
> If there's somewhere we can share that code that'd be great. If that's not
> feasible then doing it in the B2G shell code seems fine.

In mobile/android/base/CrashReporter.java.in around line 253
Comment 22 Hubert Figuiere [:hub] 2012-10-01 10:05:31 PDT
(In reply to Robert Kaiser (:kairo@mozilla.com) from comment #19)
> (In reply to Hub Figuiere [:hub] from comment #18)
> > (In reply to Robert Kaiser (:kairo@mozilla.com) from comment #17)
> > > Hrm, looks like |adb shell propget| doesn't work with the latest otoro
> > > image, any other way I can see this list?
> > 
> > It does work on the Samsung Galaxy S2. That's actually what I used (no
> > choice)
> 
> I get this output/error with our otoro image (and building myself doesn't
> work anyhow, I guess because of some incompatibility with gcc 4.7):
> /system/bin/sh: propget: not found
> 
> 
> Can you show me an output of what you are seeing?

The command is actually |getprop|

Here is what I get on Samsung Galaxy S2

[audio.stub]: [0]
[audioflinger.bootsnd]: [1]
[dalvik.vm.checkjni]: [false]
[dalvik.vm.dexopt-data-only]: [1]
[dalvik.vm.dexopt-flags]: [m=y]
[dalvik.vm.heapsize]: [64m]
[dalvik.vm.stack-trace-file]: [/data/anr/traces.txt]
[dev.sfbootcomplete]: [0]
[dhcp.wlan0.dns1]: [10.244.75.5]
[dhcp.wlan0.dns2]: []
[dhcp.wlan0.dns3]: []
[dhcp.wlan0.dns4]: []
[dhcp.wlan0.gateway]: [10.244.24.1]
[dhcp.wlan0.ipaddress]: [10.244.30.155]
[dhcp.wlan0.leasetime]: [10800]
[dhcp.wlan0.mask]: [255.255.248.0]
[dhcp.wlan0.pid]: [2075]
[dhcp.wlan0.reason]: [REBOOT]
[dhcp.wlan0.result]: [ok]
[dhcp.wlan0.server]: [10.244.24.7]
[gsm.version.ril-impl]: [Samsung RIL(IPC) v2.0]
[init.svc.adbd]: [running]
[init.svc.b2g]: [running]
[init.svc.checktype]: [stopped]
[init.svc.dbus]: [running]
[init.svc.debuggerd]: [running]
[init.svc.dhcpcd_wlan0]: [running]
[init.svc.drm]: [running]
[init.svc.dvfs]: [stopped]
[init.svc.fakeperm]: [running]
[init.svc.immvibed]: [stopped]
[init.svc.installd]: [running]
[init.svc.keystore]: [running]
[init.svc.media]: [running]
[init.svc.netd]: [running]
[init.svc.ril-daemon]: [running]
[init.svc.rilproxy]: [running]
[init.svc.rtc_log]: [stopped]
[init.svc.servicemanager-g]: [running]
[init.svc.vold]: [running]
[init.svc.wpa_supplicant]: [running]
[mobiledata.interfaces]: [pdp0,eth0,gprs,ppp0]
[net.bt.name]: [Android]
[net.change]: [net.dnschange]
[net.dns1]: [10.244.75.5]
[net.dns2]: [0.0.0.0]
[net.dnschange]: [1]
[net.rmnet0.dns1]: []
[net.rmnet0.dns2]: []
[net.rmnet0.gw]: []
[net.tcp.buffersize.default]: [4096,87380,110208,4096,16384,110208]
[net.tcp.buffersize.edge]: [4093,26280,35040,4096,16384,35040]
[net.tcp.buffersize.gprs]: [4092,8760,11680,4096,8760,11680]
[net.tcp.buffersize.umts]: [4094,87380,110208,4096,16384,110208]
[net.tcp.buffersize.wifi]: [4095,131072,196608,4096,16384,110208]
[net.wlan0.dns1]: [10.244.75.5]
[net.wlan0.dns2]: [0.0.0.0]
[net.wlan0.gw]: [10.244.24.1]
[persist.service.adb.enable]: []
[persist.service.usb.setting]: [0]
[persist.sys.country]: [US]
[persist.sys.flipfontpath]: []
[persist.sys.language]: [en]
[persist.sys.localevar]: []
[persist.sys.profiler_ms]: [0]
[persist.sys.storage_preload]: [2]
[persist.sys.timezone]: [PDT+07]
[persist.sys.usb.config]: [mtp,adb]
[ril.FS]: [false]
[ril.ICC_TYPE]: [2]
[ril.RildInit]: [1]
[ril.barcode]: []
[ril.cid]: [0028e001]
[ril.hw_ver]: [MP 1.400]
[ril.initPB]: [1]
[ril.lac]: [fe88]
[ril.model_id]: [I9100]
[ril.pin_mode]: [0]
[ril.prl_num]: [0]
[ril.product_code]: [GT-I9100LKLTTT]
[ril.rfcal_date]: [2012.2.11]
[ril.rildreset]: [0]
[ril.sales_code]: [TTT]
[ril.serialnumber]: [00000000000]
[ril.sw_ver]: [I9100XXLPQ]
[ril.timezoneID]: []
[rild.libargs]: [-d /dev/ttyS0]
[rild.libpath]: [/system/lib/libsec-ril.so]
[ro.BACKUP_APP_ADJ]: [5]
[ro.BACKUP_APP_MEM]: [14336]
[ro.EMPTY_APP_ADJ]: [15]
[ro.EMPTY_APP_MEM]: [20480]
[ro.FOREGROUND_APP_ADJ]: [0]
[ro.FOREGROUND_APP_MEM]: [8192]
[ro.HEAVY_WEIGHT_APP_ADJ]: [3]
[ro.HEAVY_WEIGHT_APP_MEM]: [12288]
[ro.HIDDEN_APP_MEM]: [16384]
[ro.HIDDEN_APP_MIN_ADJ]: [7]
[ro.HOME_APP_ADJ]: [6]
[ro.HOME_APP_MEM]: [14336]
[ro.PERCEPTIBLE_APP_ADJ]: [2]
[ro.PERCEPTIBLE_APP_MEM]: [12288]
[ro.SECONDARY_SERVER_ADJ]: [4]
[ro.SECONDARY_SERVER_MEM]: [14336]
[ro.VISIBLE_APP_ADJ]: [1]
[ro.VISIBLE_APP_MEM]: [10240]
[ro.allow.mock.location]: [0]
[ro.baseband]: [unknown]
[ro.board.platform]: [exynos4]
[ro.bootloader]: [unknown]
[ro.bootmode]: [unknown]
[ro.bt.bdaddr_path]: [/efs/bluetooth/bt_addr]
[ro.build.characteristics]: [default]
[ro.build.date.utc]: [1348772453]
[ro.build.date]: [Thu Sep 27 12:00:53 PDT 2012]
[ro.build.description]: [full_galaxys2-eng 4.0.4.0.4.0.4 OPENMASTER eng.hub.20120927.120047 test-keys]
[ro.build.display.id]: [full_galaxys2-eng 4.0.4.0.4.0.4 OPENMASTER eng.hub.20120927.120047 test-keys]
[ro.build.host]: [raptor]
[ro.build.id]: [OPENMASTER]
[ro.build.product]: [galaxys2]
[ro.build.tags]: [test-keys]
[ro.build.type]: [eng]
[ro.build.user]: [hub]
[ro.build.version.codename]: [AOSP]
[ro.build.version.incremental]: [eng.hub.20120927.120047]
[ro.build.version.release]: [4.0.4.0.4.0.4]
[ro.build.version.sdk]: [15]
[ro.carrier]: [unknown]
[ro.com.android.dateformat]: [MM-dd-yyyy]
[ro.com.google.locationfeatures]: [1]
[ro.com.google.networklocation]: [1]
[ro.config.alarm_alert]: [Alarm_Classic.ogg]
[ro.config.notification_sound]: [pixiedust.ogg]
[ro.config.ringtone]: [Ring_Synth_04.ogg]
[ro.crypto.fs_flags]: [0x00000406]
[ro.crypto.fs_mnt_point]: [/data]
[ro.crypto.fs_options]: [noauto_da_alloc]
[ro.crypto.fs_real_blkdev]: [/dev/block/mmcblk0p10]
[ro.crypto.fs_type]: [ext4]
[ro.crypto.keyfile.userdata]: [/efs/metadata]
[ro.crypto.state]: [unencrypted]
[ro.debuggable]: [1]
[ro.factorytest]: [0]
[ro.hardware]: [smdk4210]
[ro.kernel.android.checkjni]: [0]
[ro.moz.ril.callstate_down_is_up]: [true]
[ro.moz.ril.callstate_extra_int]: [true]
[ro.moz.ril.dial_emergency_call]: [true]
[ro.nfc.port]: [I2C]
[ro.opengles.version]: [131072]
[ro.product.board]: [GT-I9100]
[ro.product.brand]: [samsung]
[ro.product.cpu.abi2]: [armeabi]
[ro.product.cpu.abi]: [armeabi-v7a]
[ro.product.device]: [galaxys2]
[ro.product.locale.language]: [en]
[ro.product.locale.region]: [US]
[ro.product.manufacturer]: [samsung]
[ro.product.model]: [GT-I9100]
[ro.product.name]: [full_galaxys2]
[ro.radio.noril]: [yes]
[ro.revision]: [14]
[ro.secure]: [0]
[ro.serialno]: [0009af62503c2f]
[ro.sf.lcd_density]: [240]
[ro.telephony.ril_class]: [samsung]
[ro.telephony.sends_barcount]: [1]
[ro.wifi.channels]: []
[status.battery.level]: [5]
[status.battery.level_raw]: [50]
[status.battery.level_scale]: [9]
[status.battery.state]: [Slow]
[sys.usb.config]: [mtp,adb]
[sys.usb.state]: [mtp,adb]
[sysimg.gonk]: [1]
[system_init.startsurfaceflinger]: [0]
[vold.post_fs_data_done]: [1]
[wifi.interface]: [wlan0]
[wifi.supplicant_scan_interval]: [20]
[wlan.driver.status]: [ok]
Comment 23 Robert Kaiser 2012-10-01 13:32:24 PDT
Hah, see, if you tell me the right command and I use that, it actually works! ;-)

FYI, here's a list from an otoro:
robert@robert:/mnt/dev/otoro> adb shell getprop
[dalvik.vm.heapgrowthlimit]: [64m]
[dalvik.vm.heapsize]: [256m]
[dalvik.vm.heapstartsize]: [8m]
[dalvik.vm.stack-trace-file]: [/data/anr/traces.txt]
[dhcp.wlan0.dns1]: [192.168.1.254]
[dhcp.wlan0.dns2]: [192.168.1.254]
[dhcp.wlan0.dns3]: []
[dhcp.wlan0.dns4]: []
[dhcp.wlan0.gateway]: [192.168.1.254]
[dhcp.wlan0.ipaddress]: [192.168.1.62]
[dhcp.wlan0.leasetime]: [86400]
[dhcp.wlan0.mask]: [255.255.255.0]
[dhcp.wlan0.pid]: [11711]
[dhcp.wlan0.reason]: [REBOOT]
[dhcp.wlan0.result]: [ok]
[dhcp.wlan0.server]: [192.168.1.254]
[gsm.version.ril-impl]: [Qualcomm RIL 1.0]
[init.svc.adbd]: [running]
[init.svc.akmd]: [running]
[init.svc.atfwd]: [running]
[init.svc.b2g]: [running]
[init.svc.bluetooth_prop]: [stopped]
[init.svc.comp-set]: [stopped]
[init.svc.console]: [running]
[init.svc.dbus]: [running]
[init.svc.debuggerd]: [running]
[init.svc.dhcpcd_wlan0]: [running]
[init.svc.drm]: [running]
[init.svc.fakeperm]: [running]
[init.svc.installd]: [running]
[init.svc.keystore]: [running]
[init.svc.media]: [running]
[init.svc.netd]: [running]
[init.svc.netmgrd]: [running]
[init.svc.proximity_init]: [stopped]
[init.svc.qcom-sh]: [stopped]
[init.svc.qcom-usb-sh]: [stopped]
[init.svc.qcom-wifi]: [stopped]
[init.svc.qmuxd]: [running]
[init.svc.ril-daemon]: [running]
[init.svc.rilproxy]: [running]
[init.svc.servicemanager]: [running]
[init.svc.usbconfig]: [stopped]
[init.svc.vold]: [running]
[init.svc.wlan_prop]: [stopped]
[init.svc.wpa_supplicant]: [running]
[keyguard.no_require_sim]: [true]
[net.bt.name]: [Android]
[net.change]: [net.rmnet0.gw]
[net.dns1]: [192.168.1.254]
[net.dns2]: [192.168.1.254]
[net.dnschange]: [3]
[net.rmnet0.dns1]: [194.48.139.254]
[net.rmnet0.dns2]: [194.48.124.200]
[net.rmnet0.gw]: [10.40.99.177]
[net.tcp.buffersize.default]: [4096,87380,110208,4096,16384,110208]
[net.tcp.buffersize.edge]: [4093,26280,35040,4096,16384,35040]
[net.tcp.buffersize.evdo_b]: [4094,87380,262144,4096,16384,262144]
[net.tcp.buffersize.gprs]: [4092,8760,11680,4096,8760,11680]
[net.tcp.buffersize.hsdpa]: [4094,87380,1220608,4096,16384,1220608]
[net.tcp.buffersize.hspa]: [4094,87380,1220608,4096,16384,1220608]
[net.tcp.buffersize.hsupa]: [4094,87380,1220608,4096,16384,1220608]
[net.tcp.buffersize.lte]: [4094,87380,1220608,4096,16384,1220608]
[net.tcp.buffersize.umts]: [4094,87380,110208,4096,16384,110208]
[net.tcp.buffersize.wifi]: [4096,221184,3461120,4096,221184,3461120]
[net.wlan0.dns1]: [192.168.1.254]
[net.wlan0.dns2]: [192.168.1.254]
[net.wlan0.gw]: [192.168.1.254]
[persist.radio.adb_log_on]: [1]
[persist.radio.net_pref_0]: [0]
[persist.radio.net_pref_1]: [7]
[persist.radio.paging_priority]: [0]
[persist.radio.sma_voice_3gpp]: [0]
[persist.radio.tuneaway]: [1]
[persist.sys.timezone]: [CEST-02]
[persist.sys.usb.config]: [diag,modem,nmea,mass_storage,adb]
[ril.ecclist]: [112,911,112]
[rild.libargs]: [-d/dev/smd0]
[rild.libpath]: [/system/lib/libril-qc-1.so]
[ro.adb.qemud]: [1]
[ro.allow.mock.location]: [1]
[ro.baseband]: [msm]
[ro.board.platform]: [msm7627a]
[ro.bootloader]: [unknown]
[ro.bootmode]: [unknown]
[ro.build.characteristics]: [default]
[ro.build.date.utc]: [1349064200]
[ro.build.date]: [Sun Sep 30 21:03:20 PDT 2012]
[ro.build.description]: [full_otoro-user 4.0.4.0.4.0.4 OPENMASTER 27 test-keys]
[ro.build.display.id]: [OPENMASTER.27]
[ro.build.fingerprint]: [toro/full_otoro/otoro:4.0.4.0.4.0.4/OPENMASTER/27:user/test-keys]
[ro.build.host]: [builder1.ateam.phx1.mozilla.com]
[ro.build.id]: [OPENMASTER]
[ro.build.product]: [otoro]
[ro.build.tags]: [test-keys]
[ro.build.type]: [user]
[ro.build.user]: [jenkins]
[ro.build.version.codename]: [AOSP]
[ro.build.version.incremental]: [27]
[ro.build.version.release]: [4.0.4.0.4.0.4]
[ro.build.version.sdk]: [15]
[ro.carrier]: [unknown]
[ro.com.android.dataroaming]: [true]
[ro.com.android.dateformat]: [MM-dd-yyyy]
[ro.config.alarm_alert]: [Alarm_Classic.ogg]
[ro.config.notification_sound]: [pixiedust.ogg]
[ro.config.ringtone]: [Ring_Synth_04.ogg]
[ro.crypto.state]: [unencrypted]
[ro.debuggable]: [1]
[ro.emmc]: [0]
[ro.factorytest]: [0]
[ro.hardware]: [roamer2]
[ro.hw_plat]: [7x25A]
[ro.moz.ril.emergency_by_default]: [true]
[ro.moz.ril.simstate_extra_field]: [true]
[ro.product.board]: [7x27]
[ro.product.brand]: [toro]
[ro.product.cpu.abi2]: [armeabi]
[ro.product.cpu.abi]: [armeabi-v7a]
[ro.product.device]: [otoro]
[ro.product.locale.language]: [en]
[ro.product.locale.region]: [US]
[ro.product.manufacturer]: [toro]
[ro.product.model]: [otoro1]
[ro.product.name]: [full_otoro]
[ro.revision]: [0]
[ro.ril.gprsclass]: [10]
[ro.ril.hsxpa]: [1]
[ro.secure]: [0]
[ro.serialno]: [ROAMER2]
[ro.use_data_netmgrd]: [true]
[ro.vendor.extension_library]: [/system/lib/libqc-opt.so]
[ro.wifi.channels]: []
[sys.usb.config]: [diag,modem,nmea,mass_storage,adb]
[sys.usb.state]: [diag,modem,nmea,mass_storage,adb]
[system_init.startsurfaceflinger]: [0]
[vold.post_fs_data_done]: [1]
[wifi.interface]: [wlan0]
[wifi.wpa_supp_ready]: [1]
[wlan.driver.status]: [ok]
Comment 24 Hubert Figuiere [:hub] 2012-10-01 13:37:15 PDT
(In reply to Robert Kaiser (:kairo@mozilla.com) from comment #23)
> Hah, see, if you tell me the right command and I use that, it actually
> works! ;-)

TBH I had a WTF moment when I tested it. PEBKAC.
Comment 25 Robert Kaiser 2012-10-03 09:10:50 PDT
So, I'll propose those annotations to be added, using the following getprop values:

Android_Hardware: <ro.hardware>
Android_Device: <ro.product.device>
Android_CPU_ABI2: <ro.product.cpu.abi2>
Android_CPU_ABI: <ro.product.cpu.abi>
Android_Manufacturer: <ro.product.manufacturer>
Android_Brand: <ro.product.brand>
Android_Model: <ro.product.model>
Android_Version: <ro.build.version.sdk> + " (" + <ro.build.version.codename> + ")"
Android_Board: <ro.product.board>


We also really want AdapterVendorID and AdapterDeviceID, but those are set differently, see how it's done in Android and Windows:
http://mxr.mozilla.org/comm-central/source/mozilla/widget/android/GfxInfo.cpp#265
http://mxr.mozilla.org/comm-central/source/mozilla/widget/windows/GfxInfo.cpp#644

widget/gonk/ seems to not have a GfxInfo, I guess we need to file a bug to get that implemented.
Comment 26 Hubert Figuiere [:hub] 2012-10-03 10:30:43 PDT
Created attachment 667536 [details] [diff] [review]
Bug 777187 - Part 1: Annotate crash with Android hardware info.

Here is the reworked version. It is only missing the stuff from GfxInfo.
Comment 27 Robert Kaiser 2012-10-03 13:21:24 PDT
Comment on attachment 667536 [details] [diff] [review]
Bug 777187 - Part 1: Annotate crash with Android hardware info.

Review of attachment 667536 [details] [diff] [review]:
-----------------------------------------------------------------

I technically can't review B2G stuff, also to a part because I just understand too little of the actual code, so please get someone from the team to do the technical review.
I sign off on the annotation names and sources, though, thanks for this patch!

And for the gfxInfo stuff, I guess it's best to file another bug.
Comment 28 David Bolter [:davidb] 2012-10-03 13:29:47 PDT
Yeah I think gfx team would probably be best to do the gfxinfo follow up.
Comment 29 Hubert Figuiere [:hub] 2012-10-03 13:39:51 PDT
Re: gfxinfo mwu said on IRC:

<mwu> I remember looking at gfxinfo and thinking there was nothing useful there
<mwu> lemme check again
<mwu> hmm, well, nothing useful *now* but it could be useful in the future

Now, one thing is that we'll run of a very limited set of hardware, so we should be able to know the adapter based on the device model. This could indeed lower the urgency of this information.
Comment 30 Robert Kaiser 2012-10-03 14:18:05 PDT
(In reply to Hub Figuiere [:hub] from comment #29)
> Re: gfxinfo mwu said on IRC:
> 
> <mwu> I remember looking at gfxinfo and thinking there was nothing useful
> there
> <mwu> lemme check again
> <mwu> hmm, well, nothing useful *now* but it could be useful in the future
> 
> Now, one thing is that we'll run of a very limited set of hardware, so we
> should be able to know the adapter based on the device model. This could
> indeed lower the urgency of this information.

That's true for the officially supported devices, but esp. as everyone can build theirselves, put it on his or her device and potentially send reports to us, I'd like to have this data annotated sooner rather than later - esp. as we're planning to do better visible and routine analysis on those fields (given that both desktop and Android are sending them as well and we regularly have crashes affecting only certain graphics chips/cards).
Comment 31 Robert Kaiser 2012-10-03 14:19:30 PDT
In any case, as I said before, let's file a separate new bug on that and make it a dependency of the main B2G crash report tracker. We can figure out the urgency etc. right on that new bug.
Comment 32 [:fabrice] Fabrice Desré 2012-10-03 21:34:09 PDT
Comment on attachment 667536 [details] [diff] [review]
Bug 777187 - Part 1: Annotate crash with Android hardware info.

Review of attachment 667536 [details] [diff] [review]:
-----------------------------------------------------------------

r=me with nits addressed.

I guess you checked that all the ro.* properties are meaninful on otoro/unagi.

::: b2g/chrome/content/shell.js
@@ +134,5 @@
> +    let annotations = [ [ "Android_Hardware",  "ro.hardware" ],
> +                        [ "Android_Device",    "ro.product.device" ],
> +                        [ "Android_CPU_ABI2",  "ro.product.cpu.abi2" ],
> +                        [ "Android_CPU_ABI",   "ro.product.cpu.abi" ],
> +                        [ "Android_Manufacturer", "ro.product.manufacturer" ],

Nit: alignment is almost right ;)

@@ +140,5 @@
> +                        [ "Android_Model",     "ro.product.model" ],
> +                        [ "Android_Board",     "ro.product.board" ],
> +      ];
> +
> +    annotations.forEach(function (element, index, array) {

nit: You don't use the index and array arguments.
Comment 33 Hubert Figuiere [:hub] 2012-10-04 10:17:52 PDT
(In reply to Fabrice Desré [:fabrice] from comment #32)
> Comment on attachment 667536 [details] [diff] [review]
> Bug 777187 - Part 1: Annotate crash with Android hardware info.
> 
> Review of attachment 667536 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> r=me with nits addressed.

Will address

> 
> I guess you checked that all the ro.* properties are meaninful on
> otoro/unagi.

Yes, see comment 25.
Comment 34 Hubert Figuiere [:hub] 2012-10-04 10:19:35 PDT
Created attachment 668054 [details] [diff] [review]
Bug 777187 - Annotate crash with Android hardware info.

nit addressed.
Comment 36 Hubert Figuiere [:hub] 2012-10-04 14:34:12 PDT
Filed bug 798048 for the followup on the graphics adapter info.
Comment 37 Ed Morley [:emorley] 2012-10-05 04:00:18 PDT
https://hg.mozilla.org/mozilla-central/rev/ce3664d2eec8
Comment 38 Robert Kaiser 2012-10-05 06:42:52 PDT
(In reply to Hub Figuiere [:hub] from comment #36)
> Filed bug 798048 for the followup on the graphics adapter info.

Thanks. I wonder if we should file one right away to annotate app crashes and tab crashes with origin/URL in the URL field (though this is something where we definitely want input from the privacy team).
Comment 39 Hubert Figuiere [:hub] 2012-10-05 10:48:24 PDT
(In reply to Robert Kaiser (:kairo@mozilla.com) from comment #38)

> Thanks. I wonder if we should file one right away to annotate app crashes
> and tab crashes with origin/URL in the URL field (though this is something
> where we definitely want input from the privacy team).

It might be good to file one to request privacy review.

Note You need to log in before you can comment on or make changes to this bug.