45 lines
1.5 KiB
Diff
45 lines
1.5 KiB
Diff
|
|
From 24d0326e17b1088751d005cf60783bc05114733b Mon Sep 17 00:00:00 2001
|
||
|
|
From: root <root@localhost.localdomain>
|
||
|
|
Date: Wed, 13 Mar 2019 21:54:28 +0800
|
||
|
|
Subject: [PATCH 13/19] cov: trace failing pthread_kill
|
||
|
|
|
||
|
|
---
|
||
|
|
daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c | 7 +++++--
|
||
|
|
1 file changed, 5 insertions(+), 2 deletions(-)
|
||
|
|
|
||
|
|
diff --git a/daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c b/daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c
|
||
|
|
index 93697a0..d4614b5 100644
|
||
|
|
--- a/daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c
|
||
|
|
+++ b/daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c
|
||
|
|
@@ -175,6 +175,7 @@ void process_event(struct dm_task *dmt,
|
||
|
|
const char *device = dm_task_get_name(dmt);
|
||
|
|
int percent;
|
||
|
|
struct dm_info info;
|
||
|
|
+ int ret;
|
||
|
|
|
||
|
|
/* No longer monitoring, waiting for remove */
|
||
|
|
if (!state->percent_check)
|
||
|
|
@@ -205,7 +206,8 @@ void process_event(struct dm_task *dmt,
|
||
|
|
/* Maybe configurable ? */
|
||
|
|
_remove(dm_task_get_uuid(dmt));
|
||
|
|
#endif
|
||
|
|
- pthread_kill(pthread_self(), SIGALRM);
|
||
|
|
+ if ((ret = pthread_kill(pthread_self(), SIGALRM)) && (ret != ESRCH))
|
||
|
|
+ log_sys_error("pthread_kill", "self");
|
||
|
|
goto out;
|
||
|
|
}
|
||
|
|
|
||
|
|
@@ -213,7 +215,8 @@ void process_event(struct dm_task *dmt,
|
||
|
|
/* TODO eventually recognize earlier when room is enough */
|
||
|
|
log_info("Dropping monitoring of fully provisioned snapshot %s.",
|
||
|
|
device);
|
||
|
|
- pthread_kill(pthread_self(), SIGALRM);
|
||
|
|
+ if ((ret = pthread_kill(pthread_self(), SIGALRM)) && (ret != ESRCH))
|
||
|
|
+ log_sys_error("pthread_kill", "self");
|
||
|
|
goto out;
|
||
|
|
}
|
||
|
|
|
||
|
|
--
|
||
|
|
2.19.1
|
||
|
|
|