From 24d0326e17b1088751d005cf60783bc05114733b Mon Sep 17 00:00:00 2001 From: root 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