> Then I have learned (by browsing the logs) that systemd basically > unsupported on a system using /usr as a separate mount. I am sure > (pre|post)inst haven't mentioned that.
Systemd does support setups where /usr is a separate partition, but such setups require an initramfs which mounts both / and /usr together. I'm not sure if the systemd package could easily detect whether the setup is OK or not to warn about it at install time. At least any actual fixes belong in other packages. > It should not keep breaking the _same_ loop infinite times. The attached patch to systemd could help. I haven't tried running it at all, but at least the existing code looks suspicious, so if correct the patch could fix the same issue.
>From 6d575f18437dd5bfd02c4736dbd3e6a8a1286ab2 Mon Sep 17 00:00:00 2001 From: Uoti Urpala <uau@glyph.nonexistent.invalid> Date: Mon, 23 Jun 2014 08:14:22 +0300 Subject: [PATCH] core/transaction: fix cycle break attempts outside transaction transaction_verify_order_one() considers jobs/units outside current transaction when checking whether ordering dependencies cause cycles. It would also incorrectly try to break cycles at these jobs; this could not work, as the break action is to remove the job from the transaction, which is a no-op if the job isn't part of the transaction to begin with. The unit_matters_to_anchor() test also looks like it would not work correctly for non-transaction jobs. Add a check to verify that the unit is part of the transaction before considering a job a candidate for deletion. --- src/core/transaction.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/core/transaction.c b/src/core/transaction.c index d23a45c..805d40a 100644 --- a/src/core/transaction.c +++ b/src/core/transaction.c @@ -381,7 +381,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi "Found dependency on %s/%s", k->unit->id, job_type_to_string(k->type)); - if (!delete && + if (!delete && hashmap_get(tr->jobs, k->unit) && !unit_matters_to_anchor(k->unit, k)) { /* Ok, we can drop this one, so let's * do so. */ -- 1.7.6.561.g3822