Releases/Firefox 28.0b1/BuildNotes

From MozillaWiki
Jump to: navigation, search
 who mgerva, nthomas
 tracking bug: 967312
 bug hit: 967452


desktop

build 1

repacks: linux64: 1,2,3,4,5,8 linux: 2,9 failed between ~11:30-12:00 CET because of network errors

All repacks have been re kicked and completed successfully

update verify:

  • mac 3/6 failed with a network error
  • windows 3/6 failed with
SOURCE DIRECTORY ../../update
DESTINATION DIRECTORY .
failed: 22
calling QuitProgressUI
FAIL: update status was not succeeded: failed: 22
FAIL: check_updates returned failure for WINNT_x86-msvc downloads/Firefox Setup 27.0.exe vs. downloads/Firefox Setup 28.0b1.exe: 1

This is from bug 908134 testing updates from 27.0 (the release build), without making it accept mar files tagged for beta. Redid this test separately after generating partials (see below).

build 2

  • no issues with build
  • update verify failed on win32 3/6
  • update verify failed on linux 2/6
    • DNS failure for aus3.m.o for 24.0b9 he only -- URL does exist (manual check), so assume transient network error
    • retriggered build & notified qa & r-d -- will have ~10 hour run time
    • cancelled after it retested the failure
    • bug 949290 for the slow checks in AWS
  • double checked scheduler 4062 in buildbot scheduler db (release-mozilla-beta-ready-for-release) - only waiting for the two update verify failures above, so forced the builder.

Generate 27.0 --> 28.0b1 partial updates

Updated for build2, see page history for build1

# using bld-centos6-hp-009
mkdir -p ~/nthomas/bug908134/
cd ~/nthomas/bug908134/
hg clone http://hg.mozilla.org/build/tools
# get a signing token for release certs, 6 hour expiry
export PYTHONPATH=tools/lib/python; export PATH=$PATH:`pwd`
wget -O repack.py https://bugzilla.mozilla.org/attachment.cgi?id=8370664
# make sure enough disk space is free
python ~/nthomas/bug908134/tools/buildfarm/maintenance/purge_builds.py -s 40 -n 'rel-*:45d' -n 'tb-rel-*:45d' /builds/slave
# in screen generate partial updates
# once the linux64 en-US build finishes we can get the utils we need, and then start each platform as it hits the 'All builds available' email
time python -u repack.py -f 27.0-build1 -t 28.0b1-build2 -T 28.0b1-build2 --no-completes --no-snippets -P mac 2>&1 | tee mac.log
time python -u repack.py -f 27.0-build1 -t 28.0b1-build2 -T 28.0b1-build2 --no-completes --no-snippets --no-env -P linux-i686 2>&1 | tee linux32.log
time python -u repack.py -f 27.0-build1 -t 28.0b1-build2 -T 28.0b1-build2 --no-completes --no-snippets --no-env -P linux-x86_64 2>&1 | tee linux64.log
time python -u repack.py -f 27.0-build1 -t 28.0b1-build2 -T 28.0b1-build2 --no-completes --no-snippets --no-env -P win32 2>&1 | tee win32.log
# fix permissions and upload to stage
find repacked/ -type f -exec chmod 644 {} \;
find repacked/ -type d -exec chmod 755 {} \;
rsync -av -e 'ssh -i /home/cltbld/.ssh/ffxbld_dsa' \
  repacked/28.0b1-candidates/build2/ \
  ffxbld@stage.mozilla.org:/pub/mozilla.org/firefox/candidates/28.0b1-candidates/build2/
# reran check_permissions builder to make sure all is correct.
# run av scan on partials, anyone on stage
cd /pub/mozilla.org/firefox/candidates/28.0b1-candidates/build2/update
nice ionice -c2 -n7 extract_and_run_command.py -j2 clamdscan -m --no-summary -- \
  `find . -name firefox-27.0-28.0b1.partial.mar` 2>&1 | tee /tmp/av.log
# modified tools/release/patcher-configs/mozBeta-branch-patcher2.cfg to 
## have a <27.0> block in <partials>, but no others
## no past-update lines
# modified update verify harness and configs
cd tools
hg pull
hg up -r b9bac3e78c42   # == FIREFOX_28_0b1_RELEASE_RUNTIME
wget -O- https://bugzilla.mozilla.org/attachment.cgi?id=8371290 | patch -p1 
cd ..
export PYTHONPATH="tools/lib/python:tools/lib/python/vendor"
python tools/scripts/updates/create-snippets.py --config tools/release/patcher-configs/mozBeta-branch-patcher2.cfg \
   --checksums-dir checksums --snippet-dir aus2 --test-snippet-dir aus2.test -v 2>&1 | tee snippets.log
rsync -av -e 'ssh -i /home/cltbld/.ssh/ffxbld_dsa' aus2.test/ ffxbld@aus3-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-28.0b1-build2-for27.0-test/
rsync -av -e 'ssh -i /home/cltbld/.ssh/ffxbld_dsa' aus2/ ffxbld@aus3-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-28.0b1-build2-for27.0/
# on aus3-staging
~/bin/pushsnip Firefox-28.0b1-build2-for27.0-test
# update verify, manual launch on appropriate slaves, eg
# linux32 is special: need a slave that last did a 32bit build in the mock env
mock_mozilla -r mozilla-centos6-x86_64 --cwd /builds/slave --unpriv --shell 'PATH="/tools/buildbot/bin:/usr/local/bin:/usr/lib/ccache:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:/tools/python27-mercurial/bin:/home/cltbld/bin" bash'
# other platforms: no special action
# all:
mkdir nthomas; cd $_
hg clone http://hg.mozilla.org/build/tools
cd tools
hg up -r b9bac3e78c42   # == FIREFOX_28_0b1_RELEASE_RUNTIME
wget -O- https://bugzilla.mozilla.org/attachment.cgi?id=8371290 | patch -p1 
cd release/updates
# modify .cfg file for platform
./verify.sh -c mozBeta-firefox-linux64.cfg 2>&1 | tee log

Results, the same for all platforms and locales except for path in comment

diff -r source/firefox/defaults/pref/channel-prefs.js target/firefox/defaults/pref/channel-prefs.js
1c1
< //@line 2 "/builds/slave/rel-m-rel-lx_bld-0000000000000/build/browser/app/profile/channel-prefs.js"
---
> //@line 2 "/builds/slave/rel-m-beta-lx_bld-000000000000/build/browser/app/profile/channel-prefs.js"
6c6
< pref("app.update.channel", "release");
---
> pref("app.update.channel", "beta");
WARN: non-binary files found in diff
WARN: check_updates returned warning for Linux_x86-gcc3 downloads/firefox-27.0.tar.bz2 vs. downloads/firefox-28.0b1.tar.bz2: 2

Which is fine - we're starting with a release build so the channel should be different. Key thing is that update-settings.ini has no diff, nor any other file.

# back on the hp box
# NB: build1 on only, skipped for build2 as had generated before the push to mirrors started
# push the mar files into firefox/releases/28.0b1/, for releasetest & beta channels
ssh -l ffxbld -i /home/cltbld/.ssh/ffxbld_dsa stage.mozilla.org rsync -av --exclude=*tests* --exclude=*crashreporter* --exclude=*.log \
 --exclude=*.txt --exclude=*unsigned* --exclude=*update-backup* --exclude=*partner-repacks* --exclude=*.checksums --exclude=*.checksums.asc \
 --exclude=logs --exclude=jsshell* --exclude=host --exclude=*.json --exclude=*mar-tools* --exclude=*.zip --exclude=*.zip.asc \
 /pub/mozilla.org/firefox/candidates/28.0b1-candidates/build2/ /pub/mozilla.org/firefox/releases/28.0b1/

(build1 only) Setup a Firefox-28.0b1-partial-27.0 product in bouncer, based on firefox-28.0b1-partial-27.0b9 with tweaked locations.

Run final verify:

bash final-verification.sh mozBeta-firefox-linux.cfg mozBeta-firefox-linux64.cfg mozBeta-firefox-mac64.cfg mozBeta-firefox-win32.cfg 2>&1 | tee fv.log

Collect logs and upload to candidates dir, renamed so look for matches to manual_*.

Pushsnip

When it comes time to push to the beta channel, and supposing QA finds no issues with updates from 27.0, we need to publish two dirs

  • Firefox-28.0b1-build2 (as usual)
  • Firefox-28.0b1-build2-for27.0 (for the partial updates from the 27.0 release build)

mobile

all repacks failed with a connection error: "certificate common name “ftp.mozilla.org” doesn’t match requested host name “ftp-ssl.mozilla.org" updated mozharness to fix this issue