Closed Bug 1222527 Opened 9 years ago Closed 9 years ago

We can lose the "debug.performance_data.dogfooding" setting after OTA

Categories

(Firefox OS Graveyard :: General, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(blocking-b2g:2.5+)

RESOLVED FIXED
blocking-b2g 2.5+

People

(Reporter: julienw, Unassigned)

References

Details

(Whiteboard: [dogfood-blocker])

STR:
1. Flash an older dogfood build (for example the one from https://tools.taskcluster.net/task-inspector/#DIWC88Y9SGeCvaWjQCJwMg/)
2. Download and install the latest OTA from the phone.
=> note we get bug 1217490
=> But also note the setting "debug.performance_data.dogfooding" is set to "undefined" (you can check with WebIDE).

3. Enable the "Full DevTools" from Settings > Developer
=> the setting "debug.performance_data.dogfooding" is now completely inexistant.

I don't know if it's related, but I also noticed bug 1181295 and bug 1215654 introduced new settings for dogfood builds:

* metrics.selectedMetrics.level
* hud.hide
* devtools.overlay

See [1] for the related snippet in the build system. Especially I'm afraid we don't have the migration story here. NI Tamara for this, and maybe to give her opinion about the previous issue.

[1] https://github.com/mozilla-b2g/gaia/blob/b9fe675f95ddc4402878f7e492832376193ef265/build/settings.js#L288-L290
Flags: needinfo?(thills)
If we do step 3 before step 2, the setting is kept to "undefined". I think it's especially step 3 that doesn't keep the setting after the reset because of its "undefined" value. So we might have an additional issue here.
Loosing that flag will likely prevent dogfooding data from being sent. As discussed in QA standup on Friday, upgrading this bug to a dogfood blocker.
blocking-b2g: 2.5? → 2.5+
Whiteboard: [dogfood-blocker]
app.update.channel.backup has to be set to dogfood in order for app.update.channel dogfood to keep after OTA.

See bug 1217490.  There's a comment explaining.
here I'm talking about the "debug.performance_data.dogfooding" setting. Let me change the title to reflect this more clearly, I was in a rush when I filed the bug.
Summary: We can lose the dogfood flag → We can lose the "debug.performance_data.dogfooding" setting after OTA
Hi Julien,

I'm trying to reproduce this and when I shallow flash the gaia.zip listed in the STR #1, then go check in WebIDE, the dogfooding flag is not there... which is consistent with what I saw in the FTE app screens because if dogfooding flag was enabled, then I should have seen the options on the screen for sending data to be greyed out.

Is the build in step 1 the right one to start with?

Thanks,

-tamara
Flags: needinfo?(thills) → needinfo?(felash)
Tamara, I think you need to fullflash to initially get the right settings.

So download aries.zip, unzip it, go to the "b2g-distro" directory, and run "./flash.sh".

Sorry, I should have mentioned this more clearly.
Flags: needinfo?(felash)
From bug 1217490 we noticed that we got an OTA build that didn't have the dogfood settings. Likely this also caused this issue, what do you think ?
(In reply to Julien Wajsberg [:julienw] from comment #0)
> STR:
> 1. Flash an older dogfood build (for example the one from
> https://tools.taskcluster.net/task-inspector/#DIWC88Y9SGeCvaWjQCJwMg/)
> 2. Download and install the latest OTA from the phone.
> => note we get bug 1217490
> => But also note the setting "debug.performance_data.dogfooding" is set to
> "undefined" (you can check with WebIDE).

These are valid STR. If you want to reproduce them locally, here's what you can do:
1. Flash the dogfood build given in step 1.
2. In the B2G repo: |B2G_UPDATER=1 ./build.sh|
3. Download https://public-artifacts.taskcluster.net/JNQe3bXTQ6ia7qabcB9vCA/0/public/build/b2g-aries-gecko-update.mar
4. Run |adb root| then, at the root of the B2G repo: |ANDROID_TOOLCHAIN='YOUR_B2G_PATH/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/' ./tools/update-tools/test-update.py YOUR_DOWNLOAD_PATH/b2g-aries-gecko-update.mar|
5. Once the device is restarted, connect to a wi-fi network and accept the OTA update (it'll download the OTA pushed to your device in the previous step, like if it was a regular OTA)
6. Verify the setting is lost thanks to WebIDE


Thanks to :gerard-majax and :janx, we can fix it this way: OTA to an dogfood update that updates the version of the SettingsDB[1]. One way to test it locally is:
A. Update the SettingsDB version to 7.
B. Make a dogfood build: |B2G_UPDATER=1 DOGFOOD=1 ./build.sh|
C. Make a mar file needed for the OTA: B2G_UPDATER=1 DOGFOOD=1 ./build.sh gecko-update-full
D. Repeat step 4 and 5 with the mar built.
E. Verify "debug.performance_data.dogfooding" is back thanks to WebIDE. 

One thing I'd like to mention: "debug.performance_data.advanced_telemetry" is still undefined after step E. I checked the UI (Settings -> Improve Firefox OS) and the Usage Data was greyed out and set to Enhanced. I'm guess that's the correct behavior. Do you confirm, Tamara?

Finally, :gerard-majax pointed out the root cause of the issue: Like in bug 1217490, we did push a non-dogfood OTA into the dogfood channel. Usually settings are preserved after OTA, but it turns out the SettingsDB version was also upgraded in bug 1216498. This explains how the setting got undefined. 

[1] https://dxr.mozilla.org/mozilla-central/rev/abbd213422a560f1180c4ec6e3bf4792c2ea81ba/dom/settings/SettingsDB.jsm#43
Blocks: 1216498
Flags: needinfo?(thills)
Bug 1226906 will perform a SettingsDB version bump. Once it is landed a DOGFOOD OTA applied should fix that.
Depends on: 1226906
Ah ok.  on a side note, we probably shouldn't have nightly flashing on dogfood.  Hopefully this will be resolved when the OTA branch comes into place next week.
Julien, 

With the latest build, I think we can close this issue. Could you confirm please?
Flags: needinfo?(felash)
Yep I installed it through OTA and it worked for me. I also checked the value of the setting and it's back to "true".
Status: NEW → RESOLVED
Closed: 9 years ago
Flags: needinfo?(thills)
Flags: needinfo?(felash)
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.