FAQ | This is a LIVE service | Changelog

Skip to content
Snippets Groups Projects
  1. Jun 08, 2021
  2. May 12, 2021
    • Dr Catherine Pitt's avatar
      Fix a bug in the move-machine script · 75db08dc
      Dr Catherine Pitt authored
      The generation of the command to unexport NFS filesystems could generate
      an invalid command. Leading spaces were not being stripped, and in cases
      where there is more than one backup target for a machine we need to
      unexport every target. Because we also had 'set -e' in operation at this
      point, the script would fail there and never clean up the moved ZFS. I
      don't mind if we fail to unexport; if that's subsequently a problem for
      removing the ZFS then the script will fail at that point.
      
      This change makes the script generate better exportfs -u commands and
      not exit if they fail.
  3. Apr 30, 2021
    • Dr Catherine Pitt's avatar
      Make database connections short-lived · e40c1a55
      Dr Catherine Pitt authored
      The code used to open a database connection for each thread and leave
      them open for as long as the scheduler ran. This worked reasonably well
      until we moved to PostgreSQL 13 on Focal, although the scheduler would
      fail if the database was restarted because there was no logic to
      reconnect after a connection dropped.
      
      On Focal/PG13 the connection for the 'cron' thread steadily consumes
      memory until it has exhausted everything in the machine. This appears to
      be a Postgres change rather than a Perl DBI change: the problem can be
      reproduced by sitting in psql and running 'select * from backup_queue'
      repeatedly. Once or twice a minute an instance of this query will cause
      the connection to consume another MB of RAM which is not released until
      the database connection is closed. The cron thread runs that query every
      two seconds. My guess is it's something peculiar about the view that
      query selects from - the time interval thing is interesting.
      This needs more investigation.
      
      But in the meantime I'd like to have backup servers that don't endlessly
      gobble RAM, so this change makes the threads connect to the database
      only when they need to, and closes the connection afterwards. This
      should also make things work better over database restarts but that's
      not been carefully tested.
  4. Jan 18, 2021
  5. Jan 06, 2021
  6. Dec 11, 2020
  7. Nov 09, 2020
  8. Nov 06, 2020
  9. Oct 07, 2020
  10. Oct 06, 2020
  11. Apr 07, 2020
  12. Dec 18, 2019
  13. Jul 30, 2019
  14. Jul 23, 2019
  15. Apr 23, 2019
  16. Jan 16, 2019
  17. Dec 06, 2018
  18. Nov 07, 2018
    • Dr Adam Thorn's avatar
      Escape $ in ssh commands used in prepare scripts · 71da2ff1
      Dr Adam Thorn authored
      Our backup logs are generally full of
      
      + ssh -p 22 -o ConnectTimeout=10 root@openvpn2020.ch.cam.ac.uk '
        umask 077
        FILELIST=`tempfile`
        CONFLIST=`tempfile`
        mkdir -p /var/adm/backup
        # Make logrotate use datestamps
        if ! grep -q dateext /etc/logrotate.conf ; then sed  -i '\''s/^include/dateext\ninclude/'\'' /etc/logrotate.conf ; fi
        # Which packages are installed?
        dpkg --get-selections | awk '\'' { print $1 ; } '\'' >/var/adm/backup/packages
        cat /var/lib/dpkg/info/*.list | while read F ; do [ -f "$F" ] && echo "$F" ; done | sort > $FILELIST
        awk '\''/Description:/ { flag = 0 } ; flag == 1 { print $1 ; }  ; /Conffiles:/ { flag = 1  } ; '\'' </var/lib/dpkg/status |  sort >$CONFLIST
        diff -u $FILELIST $CONFLIST | grep ^-/ | sed s/^-// >/var/adm/backup/package-files
        rm
       '
      rm: missing operand
      
      because we're not escaping the args to that final rm command! This means we gradually fill
      up /tmp, especially on machines that are infrequently rebooted (e.g. calculon)
  19. Nov 06, 2018
  20. Oct 22, 2018
  21. Oct 18, 2018
  22. Jun 19, 2018
  23. Jan 11, 2018
  24. Nov 30, 2017
  25. Oct 10, 2017
  26. Aug 11, 2017
  27. Jun 01, 2017
  28. May 22, 2017
  29. Mar 29, 2017
  30. Mar 28, 2017
  31. Feb 14, 2017
  32. Jan 12, 2017
  33. Dec 08, 2016
  34. Dec 02, 2016
Loading