be0c12
From 8cb38e1557b81740f49dff43a297aef7bd676424 Mon Sep 17 00:00:00 2001
be0c12
From: Lennart Poettering <lennart@poettering.net>
be0c12
Date: Tue, 9 Oct 2018 22:22:52 +0200
be0c12
Subject: [PATCH] core: make destructive transaction error a bit more useful
be0c12
be0c12
(cherry picked from commit cf99f8eacf1c864b19a6a02edea78c43f3185cb7)
be0c12
be0c12
Related: #2040147
be0c12
---
be0c12
 src/core/transaction.c | 4 +++-
be0c12
 1 file changed, 3 insertions(+), 1 deletion(-)
be0c12
be0c12
diff --git a/src/core/transaction.c b/src/core/transaction.c
be0c12
index cdaaff4f55..ee5b39fef4 100644
be0c12
--- a/src/core/transaction.c
be0c12
+++ b/src/core/transaction.c
be0c12
@@ -526,7 +526,9 @@ static int transaction_is_destructive(Transaction *tr, JobMode mode, sd_bus_erro
be0c12
                 if (j->unit->job && (mode == JOB_FAIL || j->unit->job->irreversible) &&
be0c12
                     job_type_is_conflicting(j->unit->job->type, j->type))
be0c12
                         return sd_bus_error_setf(e, BUS_ERROR_TRANSACTION_IS_DESTRUCTIVE,
be0c12
-                                                 "Transaction is destructive.");
be0c12
+                                                 "Transaction for %s/%s is destructive (%s has '%s' job queued, but '%s' is included in transaction).",
be0c12
+                                                 tr->anchor_job->unit->id, job_type_to_string(tr->anchor_job->type),
be0c12
+                                                 j->unit->id, job_type_to_string(j->unit->job->type), job_type_to_string(j->type));
be0c12
         }
be0c12
 
be0c12
         return 0;