Closed Bug 1153242 Opened 9 years ago Closed 8 years ago

update verify fails for first few beta releases after RC

Categories

(Release Engineering :: Release Automation: Other, defect)

x86_64
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: bhearsum, Unassigned)

Details

Attachments

(4 files)

We got errors like:
PATCH DIRECTORY ../../update
INSTALLATION DIRECTORY .
WORKING DIRECTORY .
failed: 22
calling QuitProgressUI
FAIL: update status was not succeeded: failed: 22

Which stands for mar channel mismatch, according to https://github.com/mozilla/gecko-dev/blob/master/toolkit/mozapps/update/common/errors.h.

This is probably fallout from the balrog rc submission work, I'll look into this soon.
Turns out this has happened for 38.0b2 as well. Curiously, I can't find record of it happening for 38.0b1 even though it should have...

In any case, the problem here is that we need mar_channel_IDs set for the RC build lines of the update verify configs, so that ACCEPTED_MAR_CHANNEL_IDS gets adjusted before the update gets applied.
Summary: 38.0b3 update verify failed for 37.0 rc builds → update verify fails for first few beta releases after RC
(In reply to Ben Hearsum [:bhearsum] from comment #1)
> Turns out this has happened for 38.0b2 as well. Curiously, I can't find
> record of it happening for 38.0b1 even though it should have...

Looks like we don't run RC -> beta 1 update verify checks. This is the patcher config from 38.0b1: https://github.com/mozilla/build-tools/blob/2856d3af42babfd5f1237ee35f9ec57afeb313f6/release/patcher-configs/mozBeta-branch-patcher2.cfg, and we only run update verify checks for the first version in each past-update line, and the "from" version of the current-update section. 37.0 doesn't end up in either for 38.0b1. This might be related to bug 1151755...
Yes indeed, we missed checks for 38.0b1 because of that bug.

IIRC we need to make sure a line
   mar-channel-ids   firefox-mozilla-beta,firefox-mozilla-release
is added to any RC block in the beta patcher config, preferably when we bump it for that RC. eg http://hg.mozilla.org/build/tools/file/54d6610ac462/release/patcher-configs/mozBeta-branch-patcher2.cfg#l1196

Then that'll get passed down to update verify, and it will fix up the update-settings.ini file between unpacking an RC and testing the update.
Needs more testing, but seems to work for the one, somewhat contrived, scenario I tested:
perl ../patcher-config-bump.pl -p firefox -r Firefox -v 37.0 -a 37.0 -o 37.0b7 -b 1 -c mozBeta-branch-patcher2.cfg -t stage.mozilla.org -f ftp.mozilla.org -d download.mozilla.org -l shipped-locales --partial-version 37.0b7 --platform linux --platform linux64 --platform macosx64 --platform win32 --mar-channel-id firefox-mozilla-beta --mar-channel-id firefox-mozilla-release
Error running wget: Modification of a read-only value attempted at /usr/lib/x86_64-linux-gnu/perl/5.20/IO/Handle.pm line 207.

Error running wget: Modification of a read-only value attempted at /usr/lib/x86_64-linux-gnu/perl/5.20/IO/Handle.pm line 207.

Error running wget: Modification of a read-only value attempted at /usr/lib/x86_64-linux-gnu/perl/5.20/IO/Handle.pm line 207.

Error running wget: Modification of a read-only value attempted at /usr/lib/x86_64-linux-gnu/perl/5.20/IO/Handle.pm line 207.

@@ -1523,29 +1512,30 @@
                     mac   20150212154903
                     win32   20150212154903
                 </platforms>
                 prettyVersion   36.0 Beta 9
                 schema   2
                 version   36.0
             </36.0b9>
             <37.0>
-                checksumsurl   http://stage.mozilla.org/pub/mozilla.org/firefox/nightly/37.0-candidates/build2/%platform%/%locale%/firefox-37.0.checksums
-                completemarurl   http://stage.mozilla.org/pub/mozilla.org/firefox/nightly/37.0-candidates/build2/update/%platform%/%locale%/firefox-37.0.complete.mar
+                checksumsurl   http://stage.mozilla.org/pub/mozilla.org/firefox/nightly/37.0-candidates/build1/%platform%/%locale%/firefox-37.0.checksums
+                completemarurl   http://stage.mozilla.org/pub/mozilla.org/firefox/nightly/37.0-candidates/build1/update/%platform%/%locale%/firefox-37.0.complete.mar
                 <exceptions>
                     ja   linux-i686, linux-x86_64, win32
                     ja-JP-mac   mac
                 </exceptions>
                 extension-version   37.0
                 locales   ach af an ar as ast az be bg bn-BD bn-IN br bs ca cs cy da de dsb el en-GB en-US en-ZA eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gu-IN he hi-IN hr hsb hu hy-AM id is it ja ja-JP-mac kk km kn ko lij lt lv mai mk ml mr ms nb-NO nl nn-NO or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq sr sv-SE ta te th tr uk uz vi xh zh-CN zh-TW
+                mar-channel-ids   firefox-mozilla-beta,firefox-mozilla-release
                 <platforms>
-                    linux-i686   20150326190726
-                    linux-x86_64   20150326190726
-                    mac   20150326190726
-                    win32   20150326190726
+                    linux-i686   20150324194038
+                    linux-x86_64   20150324194038
+                    mac   20150324194038
+                    win32   20150324194038
                 </platforms>
                 prettyVersion   37.0
                 schema   2
                 version   37.0
             </37.0>
             <37.0b1>
                 checksumsurl   http://stage.mozilla.org/pub/mozilla.org/firefox/nightly/37.0b1-candidates/build1/%platform%/%locale%/firefox-37.0b1.checksums
                 completemarurl   http://stage.mozilla.org/pub/mozilla.org/firefox/nightly/37.0b1-candidates/build1/update/%platform%/%locale%/firefox-37.0b1.complete.mar


(I redacted the current-update parts of the diff).

I'm pretty sure that wget warnings above are some weird issue on my laptop, going to dig into that more though.


I was thinking of hooking this into the automation by adding a "updateVerifyMarChannelIds" (or something) option to the release config and only setting it for the beta channel on mozilla-release. When set, ReleaseUpdatesFactory will pass it along to patcher-config-bump.pl. Leaving it unset for release on mozilla-release and beta on mozilla-beta means they will inherit whatever is already set - which is what we want, I think.
Attachment #8591674 - Flags: feedback?(nthomas)
One-time fix for <37.0> block.
Attachment #8592435 - Flags: review?(bhearsum)
Comment on attachment 8591674 [details] [diff] [review]
add code to patcher config bump that can create mar channel ids

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

Looks fine to me. A cleaner diff would be 'actual 37.0 build1 config' vs '37.0b7 config bumped with new code', should just be one line difference.
Attachment #8591674 - Flags: feedback?(nthomas) → feedback+
Comment on attachment 8592435 [details] [diff] [review]
[tools] FIx up 37.0

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

Oops, thanks.
Attachment #8592435 - Flags: review?(bhearsum) → review+
This should do the trick. I haven't tested this because I didn't think it was worth the effort of getting a staging release environment set-up. If you think this is too risky to land without it, I can do that though.

Passes checkconfig.
Attachment #8593423 - Flags: review?(nthomas)
Attachment #8591674 - Flags: review?(nthomas)
Attachment #8591674 - Flags: review?(nthomas) → review+
Attachment #8593423 - Flags: review?(nthomas) → review+
Attachment #8593424 - Flags: review?(nthomas) → review+
Attachment #8591674 - Flags: checked-in+
Attachment #8593423 - Flags: checked-in+
Comment on attachment 8593424 [details] [diff] [review]
add mar channel ids to beta channel of release configs

This is all landed now. Going to leave this open until it's verified with 39.0b1/b2.
Attachment #8593424 - Flags: checked-in+
39.0b1 didn't get partials from any 39.0 RC, so I couldn't verify this as part of that. Hopefully 39.0b2 will.
Bug 1163465 is biting us, we have to leave the RC builds out of the partial list.
We didn't end up doing any Betas this cycle which had partials from an RC, so we'll have to until 40.0b1 to verify this.
(In reply to Nick Thomas [:nthomas] from comment #15)
> Bug 1163465 is biting us, we have to leave the RC builds out of the partial
> list.

Whoops, forgot to read before replying. Thanks!
Still haven't had any betas with RCs as their partials. It's more likely after 41.0 ships, since we'll (surely) have shipped 64-bit Windows with that, and can WONTFIX bug 1163465.
Unassigning from myself because surely this will be verified by the time I get back, since we're shipping win64 w/ 42.0?
Assignee: bhearsum → nobody
Haven't seen this for a while
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: