ReferencePlatforms/Test/WinXP

From MozillaWiki
Jump to: navigation, search

Configuration Details

From XP SP2 OEM, X11-45391

Downloaded Software Updates

TODO

Configuration Changes

  • Turned OFF all automatic updates
  • Turned ON firewall; allowed RDP and SSH
  • Turned off all MS networking, leaving only TCP/IP
  • Created tester account
  • Turned on RDP; allowed tester and Administrator to connect
  • Turned off screensavers
  • Select 'Windows XP' theme in Display options
  • Select screen size 1280x1024 in Display options
  • Turn off all sleep features.
  • My Computer -> Properties -> Advanced -> Performance -> Custom -> Select all checkboxes

Install supplemental language support

(from http://www.microsoft.com/globaldev/handson/user/xpintlsupp.mspx)

  • used XP SP2 OEM, X11-45391

Install Third-party applications

  • Python 2.4.4
    • 'Install for all users'
    • Append 'C:\python24;c:\python24\scripts' to the PATH.
  • Python Win32 Extensions
  • PyYaml
  • Info-Zip
    1. Download and extract Info-Zip
    2. Place 'unzip.exe' and 'unzip32.dll' in c:\windows
  • CVS
    1. Download CVS
    2. Extract to c:\windows
  • Wget
    1. Download Wget to c:\windows
  • Chmod, rm, etc.
    1. Download and install Coreutils
    2. Append 'c:\program files\gnuwin32\bin' to PATH.
  • Twisted 2.4.0 (Includes zope-interface)

Speedswitch XP

RealVNC

VNC *must* be used to get real performance numbers. Download and install RealVNC.
On the 'Select Additional Tasks' page use the following options:
[x] Register and configure VNC Server for Service-Mode
[x] Start the VNC Server in Service-Mode
When the 'VNC Server Properties (Service-Mode)' window pops up:

  1. Use 'VNC Password Authentication'
  2. Click 'Configure' and set a password
  3. Click 'Connections'
  4. Make sure 'Accept connections on port:' is checked and set to port 5900
  5. Uncheck 'Serve Java viewer via HTTP'.
  6. Restart the computer

Do not logon with RDP from this point on. It will break the VNC server.

Buildbot

cvs -d:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -d buildbot mozilla/tools/buildbot
cd buildbot
c:\python24\python setup.py build
c:\python24\python setup.py install

Change the contents of c:\python24\scripts\buildbot.bat to '@python c:\python24\scripts\buildbot %*

Setting up a Buildbot Slave

How to setup a Buildbot Talos slave (replace the master.host, username, and password with the correct values)

cd c:\
mkdir talos-slave
buildbot create-slave talos-slave master.host:9989 username password

Edit the buildbot.tac file to have keepalive = None

You should then start the slave once to create the proper directory structure.

buildbot start talos-slave
buildbot stop talos-slave

Apache

The DocumentRoot will be dependent on the builddir of your Buildbot slave. In this section that directory will be referred to as $BUILDDIR.

For machines in the pool of slaves, $BUILDDIR should be 'talos-data'.

Pageset

You will need to install a page set in c:\pages.

The rest

  • Download and install Apache 2.2.4
  • Set 'Network Domain' and 'Server Name' to 'localhost'.
  • Create an empty directory so Apache doesn't complain:
mkdir c:/talos-slave/$BUILDDIR/talos
  • Change DocumentRoot and 'C:/Program Files..." <Directory> tag to 'c:/talos-slave/$BUILDDIR/talos'.
  • Add an alias so Apache knows where the pageset is. Add this to your httpd.conf:
Alias /page_load_test/pages c:/pages
<Directory c:/pages>
    Options Indexes
    Order allow,deny
    Allow from all
</Directory>

MozillaBuild 1.4

  • In bug 549458 we installed MozillaBuild 1.4 by doing this:
wget http://staging-stage.build.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/mozilla-build-1.4.zip -O mozilla-build.zip
wget http://staging-stage.build.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/python25win32dlls.zip -O python25win32dlls.zip
unzip mozilla-build.zip -d C:\
unzip python25win32dlls.zip -d C:\mozilla-build\python25\Scripts
rm mozilla-build.zip
rm python25win32dlls.zip

NOTE: These two files are stored permanently in the ref-platforms repo

buildbot

Install Buildbot

Install Buildbot using the following batch script. You will need to find a way to get this batch script onto the system. This installs buildbot into %mozillabuild%\buildbotve, using the version in the SET at the top. It gets Python packages from the puppet master specified in pkg_root. The final stanza will install the latest runslave.py at c:\runslave.py. You will need to enter the administrator password to do so.

@echo off
SET version=0.8.4-pre-moz2

REM find mozillabuild
SET mozillabuild=d:\mozilla-build
SET mozilladrive=d:
IF NOT EXIST %mozillabuild%\nul (
    SET mozillabuild=c:\mozilla-build
    SET mozilladrive=c:
)

REM find python - some machines have python26, some have python25
SET pythondir=%mozillabuild%\python25\
SET pythondll=python25.dll
IF NOT EXIST %pythondir%\python.exe (
    REM python26 isn't in a versioned directory for some reason
    SET pythondir=%mozillabuild%\python
    SET pythondll=python26.dll
)

SET python=%pythondir%\python.exe
SET pkg_root=http://production-puppet.build.mozilla.org/production/python-packages
SET virtualenv=%mozillabuild%\buildbotve

REM get set up
rmdir /s /q %virtualenv%
if ERRORLEVEL 1 exit /b 1
MKDIR %virtualenv%
if ERRORLEVEL 1 exit /b 1

%mozilladrive%
cd %virtualenv%


REM On systems where Python is not installed systemwide, the python.exe in the virtualenv
REM will not be able to find PYTHON*.DLL, so we copy it there "manually"
MKDIR %virtualenv%\scripts
if ERRORLEVEL 1 exit /b 1

COPY %pythondir%\%pythondll% %virtualenv%\scripts
if ERRORLEVEL 1 exit /b 1


REM get the prerequisites for a virtualenv
%mozillabuild%\wget\wget %pkg_root%/virtualenv.py
if ERRORLEVEL 1 exit /b 1

%mozillabuild%\wget\wget %pkg_root%/pip-0.8.2.tar.gz
if ERRORLEVEL 1 exit /b 1

%mozillabuild%\wget\wget %pkg_root%/distribute-0.6.14.tar.gz
if ERRORLEVEL 1 exit /b 1


REM create the virtualenv
%python% virtualenv.py --python=%python% --distribute %virtualenv%
if ERRORLEVEL 1 exit /b 1


REM populate it
.\scripts\pip install --no-deps --no-index --find-links=%pkg_root% zope.interface==3.6.1
if ERRORLEVEL 1 exit /b 1

.\scripts\pip install --no-deps --no-index --find-links=%pkg_root% buildbot-slave==%version%
if ERRORLEVEL 1 exit /b 1

.\scripts\pip install --no-deps --no-index --find-links=%pkg_root% buildbot==%version%
if ERRORLEVEL 1 exit /b 1

REM note that this version of Twisted has been modified to not require a
REM compiler; see the puppet manifests for details
.\scripts\pip install --no-deps --no-index --find-links=%pkg_root% twisted==10.2.0
if ERRORLEVEL 1 exit /b 1

.\scripts\pip install --no-deps --no-index --find-links=%pkg_root% simplejson==2.1.3
if ERRORLEVEL 1 exit /b 1

runas /user:administrator "%mozillabuild%\wget\wget -OC:\runslave.py http://hg.mozilla.org/build/puppet-manifests/raw-file/tip/modules/buildslave/files/runslave.py"
if ERRORLEVEL 1 exit /b 1

Updating Talos

Assuming your Buildbot master configuration is proper, Buildbot will automatically update Talos on every performance run. If the pageset is updated, you will need to refresh c:/pages.

Installing OPSI

  • Make sure the machine name is acurate and not that of the ref image
  • FOR STAGING SLAVES ONLY:
    • Open c:\Documents and Setting\mozqa\install-opsi.bat in Wordpad and change the IP address to 10.2.71.216
  • For all slaves:
    • Logon to the OPSI server (production-opsi or staging-opsi) and run the following:
opsi-admin -d method deleteClient $hostname.uib.local
    • Start Menu -> Run -> 'cmd'
    • Run the following in the command line:
cd c:\documents and settings\mozqa
install-opsi.bat

You will be prompted twice for a username and password. The first time, use 'pcpatch' and the second to newest root password. The second time, use 'root' and the standard root password. The slave will reboot shortly after the second prompt.

Then,

  • Open up the OPSI Client and look for the slave
    • Highlight the slave, go to Log Files, and then opsiconfd - look for errors in that log. (Normal output on a first run is to have a little bit of errors at first "PAM Authentication failure" in purple but then it reboots a few times and runs successfully)

If the slave shows up in the OPSI client, and there's no errors in the opsiconfd log, you're done! If it doesn't, or there is errors, do the following and try again (or talk to bhearsum): On the slave:

Run c:\program files\opsi.org\preloginloader\uninst\deinstall.cmd

On production-opsi:

opsi-admin -d method deleteClient $hostname.uib.local

Post-cloning Setup for Pool

There are no longer any post cloning steps for XP machines, you can also ssh into the box to make sure the buildbot.tac is pointing to the right test master if needed.

If you need to change the test master

  • Edit c:\talos-slave\buildbot.tac.sample and update buildmaster_host and slavename appropriately
  • Rename buildbot.tac.sample to buildbot.tac
  • Reboot (with 'shutdown -t 0 -r' if you're in ssh session)

Post-OPSI packages

Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)

Microsoft Visual C++ 2005 Non-Redistributable Debug CRT (x86)

  • To be able to run debug unit tests
  • This got deployed with 9126788ed78a
  • For instruction on how to generate your own debug CRT read this.
  • need to disable JIT debugging (this is deployed via OPSI now - 1f0f166cab4b). From the command-line:
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug" /v Debugger /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework" /v DbgManagedDebugger /f

Microsoft Visual C++ 2010 Non-Redistributable Debug CRT (x86)

  • To be able to run debug unit tests
  • This got deployed with 4905e94f93e5
  • For instruction on how to generate your own debug CRT read this.

Twisted patch to allow buildbot to kill jobs

  • This got deployed with 520de951bbb0
  • You can deploy this manually by:
cd C:\mozilla-build\python25\Lib\site-packages\twisted\internet
del /f /q _dumbwin32proc.py _dumbwin32proc.py.bak
wget -O_dumbwin32proc.py http://hg.mozilla.org/build/opsi-package-sources/raw-file/520de951bbb0/twisted_dumbwin32proc/CLIENT_DATA/_dumbwin32proc.py
  • The differences from the original file are in here

Upgrade NVIDIA driver

bug 629759 - upgrade NVIDIA driver to version 260.99 http://www.nvidia.com/object/winxp-260.99-whql-driver.html

Deploy slave-alloc

 REM get the latest runslave.py and startTalos.bat from hg
 wget -O c:\runslave.py http://hg.mozilla.org/build/puppet-manifests/raw-file/tip/modules/buildslave/files/runslave.py
 wget -O "c:\Documents and Settings\cltbld\Start Menu\Programs\Startup\startTalos.bat" http://hg.mozilla.org/build/puppet-manifests/raw-file/61c0b7a13f40/modules/buildslave/files/startTalos-xp.bat

Mozilla maintenance service, associated registry keys, Mozilla test CA root

bug 704578

cd c:\
wget -O installservice.bat --no-check-certificate https://bug704578.bugzilla.mozilla.org/attachment.cgi?id=579099
runas /user:administrator "schtasks /create /tn mozillamaintenance /tr \"c:\\windows\\system32\\cmd.exe /c \\\"c:\\installservice.bat\\\"\" /sc ONSTART /ru SYSTEM"
wget -O keys.reg --no-check-certificate https://bugzilla.mozilla.org/attachment.cgi?id=577617
regedit /s keys.reg
wget -O MozRoot.crt --no-check-certificate https://bugzilla.mozilla.org/attachment.cgi?id=577619
wget -O add_cert.msc --no-check-certificate https://bugzilla.mozilla.org/attachment.cgi?id=579191
start add_cert.msc
  • From menu: Action -> All Tasks -> Import... launches Certificate Import Wizard
  • Click Next
  • Browse and use C:\MozRoot.crt
  • Next, Next, Finish
  • Close the MMC window

Python 2.7

Python 2.7 got deployed through OPSI with this package.

The equivalent command would be this:

msiexec /i %SCRIPTPATH%\python-2.7.3.msi /quiet /norestart  /log c:\tmp\python27_install.log TARGETDIR=$MOZILLABUILDDIR$\python27 ALLUSERS=1

The MSI was downloaded from http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi

Deployed correct _dumbwin32proc.py and ref_image_version.txt

In bug 794617 we deployed manually the correct version of _dumbwin32proc.py since OPSI was failing to do the work.

cd C:\mozilla-build\python25\Lib\site-packages\twisted\internet
mv _dumbwin32proc.py _dumbwin32proc.py.bak
C:\mozilla-build\wget\wget.exe http://hg.mozilla.org/build/opsi-package-sources/raw-file/e55c081cb8cf/twisted_dumbwin32proc/CLIENT_DATA/_dumbwin32proc.py

We also added to C:\Documents and Settings\cltbld\Desktop\ref_image_version.txt to keep track of snapshots for talos-r3-xp-ref.