ReferencePlatforms/Test/WinXP
Contents
- 1 Configuration Details
- 2 Updating Talos
- 3 Installing OPSI
- 4 Post-cloning Setup for Pool
- 5 Post-OPSI packages
- 5.1 Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)
- 5.2 Microsoft Visual C++ 2005 Non-Redistributable Debug CRT (x86)
- 5.3 Microsoft Visual C++ 2010 Non-Redistributable Debug CRT (x86)
- 5.4 Twisted patch to allow buildbot to kill jobs
- 5.5 Upgrade NVIDIA driver
- 5.6 Deploy slave-alloc
- 5.7 Mozilla maintenance service, associated registry keys, Mozilla test CA root
- 5.8 Python 2.7
- 5.9 Deployed correct _dumbwin32proc.py and ref_image_version.txt
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
- Download and extract Info-Zip
- Place 'unzip.exe' and 'unzip32.dll' in c:\windows
- CVS
- Download CVS
- Extract to c:\windows
- Wget
- Download Wget to c:\windows
- Chmod, rm, etc.
- Download and install Coreutils
- 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:
- Use 'VNC Password Authentication'
- Click 'Configure' and set a password
- Click 'Connections'
- Make sure 'Accept connections on port:' is checked and set to port 5900
- Uncheck 'Serve Java viewer via HTTP'.
- 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>
- Restart Apache from the system tray icon
- Test the install by browsing to 'http://localhost/page_load_test/framecycler.html'. You should see rapidly changing pages.
- Turn off logging, remove any lines that begin with "CustomLog"
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)
- To be able to run Windows unit tests
- Install this
- Deployed with 95396be165c7
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
- bug 651264 - slave-side slave-alloc support for XP talos
- deploy startTalos.bat and runslave.py with:
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
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.