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