Summary: | sys-apps/openrc-0.43.2 breaks some init scripts with checkpath | ||
---|---|---|---|
Product: | Gentoo Hosted Projects | Reporter: | Klemen Mihevc <solor> |
Component: | OpenRC | Assignee: | OpenRC Team <openrc> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | douzzer, gentoo, holger, kfm, kripton, maracay, perfect007gentleman, qa, sam |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Klemen Mihevc
2021-04-14 09:28:16 UTC
The summary references 0.43.2 but the emerge --info dump references 0.43.1. I take it that this is an artefact of having downgraded? If so, please install 0.43.2 again, then identify the checkpath command that is failing. For example, by executing "rc-service -d mysql start", which will emit the composed checkpath command to STDERR as part of a trace. Yes i downgraded. For mysql this one "fails": + checkpath -d --owner mysql:mysql --mode 0755 /var/run/mysqld in version 0.43.1 if /var/run/mysqld doesnt exist you get that: * /var/run/mysqld: creating directory * /var/run/mysqld: correcting owner in 0.43.2 it doesnt do anything and it acts like directory would exists (even if in fact it doesnt) and start-stop-daemon fails when it trys to create pid file inside non existing directory. For dhcp this one "fails": + checkpath -d -o dhcp:dhcp /var/run/dhcp /var/lib/dhcp Confirmed. In the case of mysql, it ends up creating /var/mysqld. This is somewhat embarrassing, given that 0.43.2 was released to address other issues with checkpath. Here's a simple reproducer. path1=$(mktemp -u) path2=$(mktemp -d) ln -s "$path2" "$path1" /lib/rc/bin/checkpath -d "$path1/testdir" It will report something like:- * /tmp/tmp.ymrlQTGr46/testdir: creating directory However, it will have created /tmp/testdir instead. It will even exhibit this behaviour in the case of a dangling symlink. Yes now i see extra directorys where there shouldnt be :) The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=67b5f3cdb78af179e98c90e7a6d30937c683d6e2 commit 67b5f3cdb78af179e98c90e7a6d30937c683d6e2 Author: Andreas K. Hüttel <dilfridge@gentoo.org> AuthorDate: 2021-04-14 12:30:55 +0000 Commit: Andreas K. Hüttel <dilfridge@gentoo.org> CommitDate: 2021-04-14 12:32:53 +0000 QA: package.mask sys-apps/openrc-0.43.2, bug 782808 Bug: https://bugs.gentoo.org/782808 Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org> profiles/package.mask | 4 ++++ 1 file changed, 4 insertions(+) (In reply to Kerin Millar from comment #4) > path1=$(mktemp -u) path2=$(mktemp -d) > ln -s "$path2" "$path1" > /lib/rc/bin/checkpath -d "$path1/testdir" Why isn't -s needed here? (In reply to konsolebox from comment #7) > (In reply to Kerin Millar from comment #4) > > path1=$(mktemp -u) path2=$(mktemp -d) > > ln -s "$path2" "$path1" > > /lib/rc/bin/checkpath -d "$path1/testdir" > > Why isn't -s needed here? As of https://github.com/OpenRC/openrc/commit/b6fef59, the -s option has no effect for GNU/Linux. Note the checks for the availability of O_PATH. The issue happens because /var/run is a symlink and the change between 0.43.1 and 0.43.2 broke this case, so I will work on this today. The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=416ca4b2c4fb7f995a67fe75e878bbc6ddb05a70 commit 416ca4b2c4fb7f995a67fe75e878bbc6ddb05a70 Author: William Hubbs <williamh@gentoo.org> AuthorDate: 2021-04-16 02:28:25 +0000 Commit: William Hubbs <williamh@gentoo.org> CommitDate: 2021-04-16 02:30:33 +0000 sys-apps/openrc-0.43.3 bump Closes: https://bugs.gentoo.org/782808 Signed-off-by: William Hubbs <williamh@gentoo.org> sys-apps/openrc/Manifest | 1 + sys-apps/openrc/openrc-0.43.3.ebuild | 187 +++++++++++++++++++++++++++++++++++ 2 files changed, 188 insertions(+) openrc-0.43.3 is masked by: # Andreas K. Hüttel <dilfridge@gentoo.org> (2021-04-14) # QA: Mask sys-apps/openrc-0.43 because of bug 782808 =sys-apps/openrc-0.43* Please unmask the new version. (In reply to tka from comment #11) > openrc-0.43.3 is masked by: > > # Andreas K. Hüttel <dilfridge@gentoo.org> (2021-04-14) > # QA: Mask sys-apps/openrc-0.43 because of bug 782808 > =sys-apps/openrc-0.43* > > Please unmask the new version. I’d suggest we wait a bit longer given recent issues. Can it be unmasked now? Well im using it since a day it was fixed and works fine for me. The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ba4abe935aa276b78dbde37a4b4ab67fd117dc11 commit ba4abe935aa276b78dbde37a4b4ab67fd117dc11 Author: Joonas Niilola <juippis@gentoo.org> AuthorDate: 2021-05-11 05:32:26 +0000 Commit: Joonas Niilola <juippis@gentoo.org> CommitDate: 2021-05-11 05:32:26 +0000 profiles: unmask openrc-0.43* - the bug has been fixed, and broken version removed from the tree a long time ago. Bug: https://bugs.gentoo.org/782808 Signed-off-by: Joonas Niilola <juippis@gentoo.org> profiles/package.mask | 4 ---- 1 file changed, 4 deletions(-) |