Changes between Initial Version and Version 1 of MaintainingAutodebathenify


Ignore:
Timestamp:
04/24/12 12:43:32 (10 years ago)
Author:
jdreed
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MaintainingAutodebathenify

    v1 v1  
     1autodebathenify is a cron job which runs on the builder account and 
     2keeps the OpenAFS modules and modified packages under debathena/third 
     3up to date when there are upstream changes.  It relies on the 
     4following: 
     5 
     6  * builder@ATHENA.MIT.EDU has access to a local account named 
     7    debuildsvn on svn.mit.edu with read access to the athena 
     8    repository. 
     9 
     10  * builder@ATHENA.MIT.EDU has write access to the canonical build 
     11    area and apt repository in the dev cell. 
     12 
     13  * The builder account on the build machine has a copy of the signing 
     14    private key for the apt repository. 
     15 
     16The cron job will silently exit if it detects that it is already 
     17running.  If it fails for any other reason, it will send mail to 
     18source-wash@mit.edu and touch a file named autodebathenify.suppress 
     19which will prevent it from running again until manual intervention. 
     20It is important to get autodebathenify running smoothly or the apt 
     21repository will become out of date with respect to third-party 
     22packages, which in turn will compromise the user experience. 
     23 
     24Even if you don't notice failure mail, it's good to check on the 
     25status of autodebathenify from time to time.  To do this, get tickets 
     26as builder and ssh to linux-build-10 as builder.  Run "ls -l logs" to 
     27see what's been going on.  A logfile with size around 48K indicates 
     28that autodebathenify ran normally but didn't find any new work to do. 
     29A logfile with size around 60 means that autodebathenify.suppress 
     30exists and the cron job has stopped running.  A longer logfile 
     31indicates that autodebathenify attempted to build and upload a 
     32package. 
     33 
     34Possible failure cases include: 
     35 
     36  * One of the upstream apt repositories timed out during an "apt-get 
     37    update" of an sbuild chroot.  If this happens, you can just remove 
     38    the autodebathenify.suppress file to get the cron job to start 
     39    running again. 
     40 
     41  * autodebathenify tried to build an upstream version which already 
     42    exists.  If this happens, the build will fail at upload time.  If 
     43    this happens, there is a bug in the part of the debathenify-* 
     44    script which checks whether our apt repository already has the 
     45    expected version of the built package. 
     46 
     47  * Debian and Ubuntu have .orig files with the same name but 
     48    different contexts for a particular third-party package.  This has 
     49    only happened once, with bash (which is currently not configured 
     50    into autodebathenify for that reason).  We do not have a general 
     51    mechanism for resolving such issues at this time. 
     52 
     53  * The new upstream version of the package is sufficiently different 
     54    to cause our modifications to fail to apply, and our debathenify-* 
     55    script needs to be adapted appropriately. 
     56 
     57The cron job is run out of builder's home directory, but its canonical 
     58source location is in debathena/scripts/build-server in this 
     59repository, should it need to be modified. 
     60 
     61After several months of operation, LVM snapshots on the build server 
     62will start to become slower and slower, as /etc/lvm/cache/.cache grows 
     63in size.  Turning off the cache entirely seems to cause schroot to 
     64occasionally fail; the current solution is to rm /etc/lvm/cache/.cache 
     65every so often. 
     66