Fix autoinstalls to work around a modern d-i bug
[invirt/packages/invirt-xen-config.git] / debian / changelog
index 9c1ef64..7d0c89b 100644 (file)
+invirt-xen-config (0.0.60) unstable; urgency=low
+
+  * Fix autoinstalls to work around a modern d-i bug
+
+    Modern d-i (at least Debian Buster, and probably others) reads
+    /proc/consoles and adds entries to /etc/inittab to spawn a d-i
+    on each of them.  With debconf/priority>=high (i.e. without
+    the menu showing, and with d-i autodriving through the items),
+    if there are multiple consoles, this results in the d-i's racing
+    to use /var/lib/dpkg/status to record what happens as they
+    run the postinst of each udeb, and as a result, menu items
+    fail and the autoinstall fails.  See Debian Bug #944125.
+
+    We only set console=hvc0, but for reasons unknown, tty0 also
+    appears in /proc/consoles despite not being in /proc/cmdline,
+    and we don't seem to have control over that.  The script that
+    reads /proc/consoles is /sbin/reopen-console, which also
+    happens to be the main rc script on sysinit in /etc/inittab.
+    That script (through a chain of other scripts) is also what
+    runs preseed/early_command if it's set.
+
+    Normally, preseed/early_command cannot run until way too late
+    to address this, because you don't have the preseed until several
+    tasks into the install by which point it will have failed.
+    However, if you get the quoting right, you can set it as a
+    boot argument and it will run before any of the menu items,
+    and in fact, before d-i has started.
+
+    Because /sbin/reopen-console ultimately is what runs
+    preseed/early_command, when the command runs, it is too late
+    to use sed to edit reopen-console, and you can't kill it
+    because it runs the rest of the process.  At the point where
+    preseed/early_command runs, reopen-console has already found
+    the consoles and added d-i jobs for each of them to /etc/inittab.
+    However, it doesn't send the HUP to init until just after the
+    scripts including preseed/early_command are run.
+
+    Yank the tty0 job out from inittab just in the nick of time.
+    This should be safe for old distros because we have always
+    forced the desired console to hvc0; while the problem that
+    necessitates this kludge didn't exist in the past, removing
+    any inittab job for tty0 shouldn't have any noticeable effect
+    on them.
+
+ -- Mitchell Berger <mitchb@mit.edu>  Wed, 01 Jan 2020 03:43:00 -0500
+
+invirt-xen-config (0.0.59) unstable; urgency=low
+
+  * Fix the fact that we can't bump RAM quotas above 2048M
+    (and acknowledge the reality that 2048M really isn't the rarest
+    thing to need these days)
+
+  Quoting from history:
+
+  """
+     invirt-xen-config (0.0.15) unstable; urgency=low
+
+       * Set the max memory to a really high number so we can bump it for users
+       * Pass the correct networking device to vif-invirtroute
+
+      -- Evan Broder <broder@mit.edu>  Fri, 14 Nov 2008 00:03:47 -0500
+  """
+
+  i,i "640K ought to be enough for anyone."
+
+ -- Mitchell Berger <mitchb@mit.edu>  Tue, 23 Jul 2019 18:50:00 -0400
+
+invirt-xen-config (0.0.58) unstable; urgency=low
+
+  * Support kickstart-based Fedora autoinstalls.
+
+ -- Quentin Smith <quentin@mit.edu>  Sat, 15 Jun 2019 20:59:54 -0400
+
+invirt-xen-config (0.0.57) unstable; urgency=low
+
+  * invirt-database: Fix the autoinstall logic so that if we've
+    increased the memory temporarily for the autoinstall above
+    the machine's database setting, we also bring maxmem up to
+    the same level.  Otherwise the machine doesn't turn on
+    because it's requesting to start with more memory than maxmem,
+    and this failure mode is silent to the user.
+
+ -- Mitchell Berger <mitchb@mit.edu>  Sat, 02 Feb 2019 16:52:00 -0500
+
+invirt-xen-config (0.0.56) unstable; urgency=low
+
+  * vif-invirtroute: Kill arpspoof with SIGKILL when we're done.  The
+    version in this distro (which is the latest beta from the
+    unmaintained upstream) tries to "clean up" when you normally
+    terminate it.  This involves trying to perform an ARP lookup
+    without interfering to see what the MAC should've been and then
+    sending replies for that.  This appears to cause a race depending
+    on whether the entry for the machine's old domain (if it's being
+    rebooted) is listed as <incomplete> in the ARP table or is totally
+    flushed.  If you lose the race, it sends further gratuitous ARPs
+    telling the router that your MAC is all-zeros because of a bug
+    where it fails to check for an incomplete ARP entry.  This is
+    believed to cause the bug that has plagued XVM for years where
+    you sometimes lose off-network connectivity on reboot.
+
+ -- Mitchell Berger <mitchb@mit.edu>  Mon, 25 Jun 2018 22:04:00 -0400
+
+invirt-xen-config (0.0.55) unstable; urgency=low
+
+  * invirt-database: bump up autoinstall memory to make modern releases
+    work again.
+
+ -- Mitchell Berger <mitchb@mit.edu>  Fri, 01 Jun 2018 02:17:00 -0400
+
 invirt-xen-config (0.0.54) unstable; urgency=low
 
-  * invirt-database: pass through parameters for the "other" IP address,
-    if any, to vif-invirtroute.
+  * invirt-database: handle several possible actions to take with an
+    "other" set of network parameters.  Renumber a machine by swapping
+    the sets of netparams, DNAT from an old address by passing through
+    additional parameters to vif-invirtroute, and teardown an IP
+    transition by clearing all the "other" values.  Also, use the
+    netmask and gateway for the VM when autoinstalling, rather than
+    parameters from the global cluster configuration.
   * vif-invirtroute: if there is an "other" IP address, DNAT it to the
     primary IP, set up routing to get it to the VM, and arp for it.
     Also, cut out the nonsense with backgrounding arpspoof, sleeping, and
-    killing it; we have the technology for 'timeout'.
-
- -- Mitchell Berger <mitchb@mit.edu>  Tue, 15 Nay 2018 19:50:00 -0400
+    killing it; we have the technology for 'timeout'.  Finally, don't
+    pass a "src" argument to "ip route del" to ensure a match even if
+    the host's "main IP" has changed and caused the route to be inserted
+    with a different src.
+  * templatize-xend-config: explicitly turn on the relocation server
+  * qemu-ifup.invirt: make HVMs work and not only if your eth0 just happens
+    to have an IPv4 network address sitting on it
+
+ -- Mitchell Berger <mitchb@mit.edu>  Sun, 27 May 2018 01:45:00 -0400
 
 invirt-xen-config (0.0.53) unstable; urgency=low