/srv/irclogs.ubuntu.com/2019/07/25/#ubuntu-devel.txt

rbasakCould someone please explain https://people.canonical.com/~ubuntu-archive/proposed-migration/update_excuses.html#mysql-8.0?11:06
rbasakeg. libmysqlclient-dev/amd64 unsatisfiable Depends: libmysqlclient21 (= 8.0.16-0ubuntu1)11:06
rbasakBut that's produced by the same source package, and does seem to be installable in combined release+proposed at least11:06
rbasakThe binaries were accepted yesterday11:09
rbasakpitti: http://people.canonical.com/~pitti/scripts/britney-indexes as linked from https://wiki.ubuntu.com/ProposedMigration/LocalSetup no longer exists. Any chance of a copy? Does anyone else have it, please?11:46
rbasakOr I will try and reverse engineer what it does :-/11:46
rbasakOh. Could it be a component mismatch?12:08
rbasako mysql-8.0: libmysqlclient21 mysql-client-8.0 mysql-client-core-8.0 mysql-server-8.0 mysql-server-core-8.012:08
rbasak   [Reverse-Depends: libmysqlclient-dev (MAIN), mysql-client-8.0, mysql-server (MAIN), mysql-server-8.0]12:08
rbasakAha12:08
rbasakWe already seed mysql-server, which is created by src:mysql-8.0 now (taking over from src:mysql-5.7), which depends on mysql-server-8.0, which is in universe.12:12
rbasakSo that (and perhaps some other binaries) need overriding over by an AA I think.12:12
pittirbasak: Robert did an improved version of that in https://git.launchpad.net/bileto/tree/britney/fetch-indexes12:19
pittialthuogh it seems this wasn't updated in a while12:20
rbasakpitti: well it's better than a 404, so I'll update the wiki. Thanks!12:20
rbasakCould an AA please move src:mysql-8.0 in eoan-proposed to main, and the following binaries that are renamed from 5.7? libmysqlclient21 mysql-client-8.0 mysql-client-core-8.0 mysql-server-8.0 mysql-server-core-8.012:22
rbasakapw or sil2100: around please? ^12:22
apwrbasak, looking12:34
rbasakapw: any joy please? Or did you get interrupted?13:17
apwrbasak, i've asked for the change, but hte publisher was down until about T-10m because the librarian was in a heap13:22
apwand as a result it has a large backlog13:22
rbasakAh. Thanks!13:25
=== didrocks999 is now known as didrocks
rbasakapw: it worked now. Thanks!14:09
rbalintsanta_, ddstreet : i placed the systemd 242 merge in ppa:rbalint/scratch3 but autpkgtest infra did not like me and now i'm testing that locally14:40
rbalintsil2100, ^14:40
rbalinteoan boots to desktop with it but i'm waiting for a full qemu run before i upload14:41
rbasakSkuggen: results are coming in for autopkgtest failures now: https://people.canonical.com/~ubuntu-archive/proposed-migration/update_excuses.html#mysql-8.014:41
rbasakSkuggen: we need to get these fixed first14:41
rbasak(though we can upload FTBFS fixes that we know are required, too)14:42
rbasakThey should build against libmysqlclient21 now and thus the transition will begin.14:42
rbasakSkuggen: I'll look at cacti first. Looks straightforward.14:43
sil2100rbalint: thanks o/14:43
rbasakI'll stick debdiffs in the same repo we were using for review.14:43
=== M_hc[m] is now known as _hc
Skuggenrbasak: Yeah, I'll get the 8.0 build tests fixed15:04
rbasakSkuggen: thanks15:05
rbasakThe cacti failure is actually a dbconfig failure15:05
rbasakThat dep8 isn't triggered directly but I suspect it also fails15:05
SkuggenThe MySQL failure is a bit odd. Thought maybe it was just a missing symlink for the test client binaries, but we don't seem to build the binary it complains about at all15:10
Skuggendbconfig failure seems to be that 8.0 no longer allows adding "IDENTIFIED BY" clause to a GRANT statement15:12
rbasakYes15:12
rbasakThe question is how to change it exactly15:13
rbasakI think the code ensures that the user always exists first15:13
rbasakSo I think I can insert an "ALTER USER x IDENTIFIED BY" before it (not checked for syntax)15:13
rbasakI'm hoping the existing tests will check my fix though. Still running them, but I think I saw the right kinds of failrues scroll by.15:14
SkuggenOh, about the MySQL failure: we build with --list-missing. I was expecting it to fail if there were unhandled binaries :)15:15
SkuggenThere was a similar issue in ruby-mysql, but there the fix was just to remove the clause15:16
rbasakThere is also --fail-missing15:20
SkuggenYeah, we use that upstream. We'd need to do some cleanup for it. There are some extra docs files we don't include, and also router15:29
juliankvorlon: Do you happen to know why we have wait-for-root? this is significantly delaying the boot because it's sitting around for 30s and only then we enter Debian's loop which executes local-block which in turn runs lvchange and hence is able to discover the new lvm volumes after unlocking a crypt partition15:31
juliankxnox: ^15:31
juliankIf I add a local_block "${dev_id}" call before we run wait-for-root stuff works fine15:32
Skuggenrbasak: I've added the missing files (except router and redundant docs files). Will test locally, then make a merge request in salsa15:32
vorlonjuliank: "why we have it" is because it worked when it was added and solved problems.  AFAIK Debian still doesn't use udev in the initramfs so the boot process is different between Debian and Ubuntu15:35
vorlon        # in ubuntu, we should never actually enter this loop as wait-for-root15:37
vorlon        # above should waited until the device appeared.15:38
vorlonjuliank: so the device should've appeared before15:38
juliankvorlon: No, there's some udev involved somehow. But now it's definitely not running lvm2 after I'm unlocking the cryptroot before we run wait-for-root15:38
juliankThe root device appears if I run local_block before wait-for-root, as that runs lvm2's lvchange which creates the root device15:38
juliankThis used to work in disco I think but it somehow got broken15:38
juliankWhat happens is that we run lvm2 (via local-top) -> cryptroot - ... -> wait-for-root -...-> lvm2 (via local-block)15:39
rbasakSkuggen: great. Thanks!15:40
juliankI gotta setup two encrypted VMs with disco and eoan and see what the difference in the boot is15:41
xnoxjuliank:  i think we want to drop wait-for-root and switch to settle / local-block loop thing16:47
juliank+116:47
vorlonxnox, juliank: I am uncomfortable with having to reintroduce any sort of loops in the shell code when this should all be driven by udev rules17:13
vorlonI'd like to understand why this stopped working17:14
juliankvorlon: I'd like to understand it too, but I don't see any difference in the initramfs debug trace17:15
juliankvorlon: Maybe the appearance of the crypt mapping should cause lvm2 to be running via udev and it's not?17:15
juliankwhere the crypt mapping is an LVM2 PV17:16
vorlonyes, that's what should happen17:16
juliankso maybe lvm217:16
vorlonyes17:16
juliank's udev rules broke somewhere17:16
juliankvorlon: So, in eoan, the udev rule that runs pvscan moved to use pvscan@.service17:21
juliankI think17:21
juliankhmm17:22
xnoxvorlon:  loop in shell code, in initrd is new(ish) to support udev-based arbitrary stacking of raid/lvm/crypto17:32
juliankxnox: I think the argument is that udev should be handling the stacking itself, by running codes from RUN as needed17:32
xnoxvorlon:  the old loop, had static stacking.17:32
xnoxjuliank:  but it can't for unlock.17:32
vorlonfor unlock true, but per juliank's description, that's not where it's sticking17:32
juliankxnox: once you unlocked, an LVM PV appears, and the udev rule should RUN pvscan to scan it17:33
juliankah but yes17:33
xnoxjuliank:  we could do unlock from udev too.... if we add systemd with systemd-cryptsetup and tty-ask17:33
juliankif you have cryptroot nested inside cryptroot too?17:33
xnoxyes17:34
juliankSo, I reverted the eoan machine to disco's lvm2 69*rule, but it did not help17:34
juliankand debugging udev hook stuff inside initramfs17:35
julianksounds hard17:35
juliankThe Debian approach is certainly more flexible17:35
vorlonhistorically, Debian's approach has been much slower.  If that's fixed, we can look at reconverging17:36
juliankxnox: We might just need a systemd in the initramfs that has one init.service that executes the initramfs-tools init script17:36
juliankThe problem I tihnk I see is that udev rules want to start systemd services now, and we don't have systemd in the initramfs, hence the udev rules don't work17:37
juliankI might be hitting a different issue but not sure17:39
vorlondoes that imply Debian's udev rules are now also incompatible with non-systemd init?17:41
vorlonI would think that's a bigger issue for them than us17:41
juliankI'm not sure17:41
juliankso, the lvm2 rules pass --disable-udev-systemd-background-jobs but only for the udeb17:41
vorlonin debian/rules you mean17:42
vorloncute17:42
juliankand 69-lvm-metad.rules executes stuff like this:17:42
juliankACTION!="remove", ENV{LVM_PV_GONE}=="1", RUN+="/bin/systemd-run /sbin/lvm pvscan --cache $major:$minor", GOTO="lvm_end"17:42
juliankso without systemd-run I'd expect lvm to be broken17:42
juliankand init papers over that17:42
juliankbecause local-block and local-top run lvchange in a loop until the root device is found17:42
juliankvorlon: But if that's the problem, we do want to have that stuff on the host, but we can't have it in initramfs17:44
vorlonjuliank: I don't see any reason to need to background this via systemd-run.  A pvscan of a single PV should be trivially quick17:46
vorloni.e. it looks to me to be appropriate to --disable-udev-systemd-background-jobs for both host and initramfs17:46
vorlonalternatively we could mock /bin/systemd-run in the initramfs, avoiding the need to mangle udev rules17:47
vorloncat > /bin/systemd-run17:47
vorlon#!/bin/sh17:47
vorlonexec "$@"17:47
juliankvorlon: there's also a pvscan@.service17:49
juliankrebuilt lvm2 with that --disable option, going to see what happens17:51
juliankcurrently it's weirdly stuck17:51
juliankSo that seems to fix it17:52
juliankNow testing on the host rather than the VM17:53
juliankSo yeah, we want that version in the initramfs, but we'd want the other on the host17:56
juliankLaney just poited out that the systemd version also runs on change, whereas the direct pvscan one only runs on add17:56
vorlonagain, I think this systemd indirection is spurious.  I can't imagine how a pvscan of a single block device would ever hit a systemd timeout17:57
juliankvorlon: I think upstream must have had a good reason for adding this17:59
juliankvorlon: https://github.com/lvmteam/lvm2/commit/546db1c4be55d47d41082a345e15a35055223154#diff-b9ff0cca0b0701fbf51064e3459fa59218:00
juliankvorlon: In any case, we build the rule in both variants anyway (for deb and udeb), so we can just copy the udeb one to the initramfs18:01
vorlonjuliank: ok if the udev rule is forking and spawning lvmetad, that would be long-running.  I think it's still an upside-down way to implement it18:01
juliankIsn't lvmetad gone these days?18:02
vorlon*I* don't use lvmetad18:02
juliank"  Remove lvmetad"18:02
juliankin 2.0318:02
vorlonbut it's part of the rationale in that commit18:02
vorlonheh18:02
vorlonso maybe the rationale for supporting long-running processes from the udev rules is itself obsolete18:03
juliank2.03 removed a lot of daemons18:03
juliankvorlon: I'm just going to report a bug in Debian now that it won't work on alternate inits :D18:03
vorlonanyway, I still think it's cleaner to mock systemd-run in the initramfs than to copy the udeb version of the rules18:03
* vorlon nods18:04
juliankdebian bug 93301118:11
ubottuDebian bug 933011 in lvm2 "lvm2: udev rules don't work outside of systemd" [Important,Open] http://bugs.debian.org/93301118:11
juliankvorlon: So instead of hardcoding either solution. I'm changing the script so it uses systemd on systemd systems and direct execution otherwise18:27
juliankSo ACTION!="add", GOTO="lvm_end" in classic mode, and ACTION!="add|change", GOTO="lvm_end" in systemd mode now become18:27
juliankTEST!="/run/systemd/system", ACTION!="add", GOTO="lvm_end"18:27
juliankTEST=="/run/systemd/system", ACTION!="add|change", GOTO="lvm_end"18:27
vorlonjuliank: you overachiever18:27
vorlonwfm18:27
juliankLaney found out about the TEST== rule18:28
LaneyⒸ ™ ⓡ18:33
julianklvm2 uploaded19:12
juliankpatch forwarded to Debian, upstream19:13
juliankWe should probably consider changing installers to setup thinpool when doing lvm, so that people can benefit from thinpool snapshots and stuff20:51

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!