You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.1 KiB
37 lines
1.1 KiB
6 years ago
|
From: Chris Leech <cleech@redhat.com>
|
||
|
Subject: Fix iscsiuio segfault when shutting down.
|
||
|
|
||
|
Bugzilla: ZZZ
|
||
|
Upstream Status:
|
||
|
Build Info: XXX
|
||
|
Tested:
|
||
|
|
||
|
commit 2bdcae8a9969295183377342cfe218d1c5d263db
|
||
|
Author: Lee Duncan <lduncan@suse.com>
|
||
|
Date: Thu May 31 08:42:58 2018 -0700
|
||
|
|
||
|
Fix iscsiuio segfault when shutting down.
|
||
|
|
||
|
If iscsiuio is stopped when first starting up, it can easily
|
||
|
hit a window where pthread_cancel() is called before pthread_create()
|
||
|
finishesx The problem was found by kiyo@jp.fujitsu.com, who also
|
||
|
proposed the fix.
|
||
|
---
|
||
|
iscsiuio/src/unix/iscsid_ipc.c | 3 ++-
|
||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/iscsiuio/src/unix/iscsid_ipc.c b/iscsiuio/src/unix/iscsid_ipc.c
|
||
|
index d4322350fcf6..2acac485af72 100644
|
||
|
--- a/iscsiuio/src/unix/iscsid_ipc.c
|
||
|
+++ b/iscsiuio/src/unix/iscsid_ipc.c
|
||
|
@@ -1245,7 +1245,8 @@ void iscsid_cleanup()
|
||
|
{
|
||
|
int rc;
|
||
|
|
||
|
- if (iscsid_opts.fd != INVALID_FD) {
|
||
|
+ if (iscsid_opts.fd != INVALID_FD &&
|
||
|
+ iscsid_opts.thread != INVALID_THREAD) {
|
||
|
rc = pthread_cancel(iscsid_opts.thread);
|
||
|
if (rc != 0) {
|
||
|
LOG_ERR("Could not cancel iscsid listening thread: %s",
|