<div dir="ltr">Applied.<div>Thanks.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Aug 15, 2016 at 7:13 PM, Mike Christie <span dir="ltr"><<a href="mailto:mchristi@redhat.com" target="_blank">mchristi@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This fixes a regression added with:<br>
015f87b16a7797a17afd514aec46e6<wbr>5c2a1a2f73<br>
<br>
We can hit a race where when pathinfo is setting up a path, the path<br>
could have gone down already. In the DI_CHECKER chunk we then do not run<br>
get_state and attach a checker. Later when check_path is run<br>
path_offline could still return PATH_DOWN or PATH_REMOVED and<br>
get_state is again not run so we do not get to attach a checker. I<br>
was then running repair_path since the state was PATH_DOWN, and we then<br>
hit a segfault.<br>
<br>
This has us test if a checker is selected before running repair.<br>
<br>
Signed-off-by: Mike Christie <<a href="mailto:mchristi@redhat.com">mchristi@redhat.com</a>><br>
---<br>
libmultipath/checkers.c | 2 +-<br>
1 file changed, 1 insertion(+), 1 deletion(-)<br>
<br>
diff --git a/libmultipath/checkers.c b/libmultipath/checkers.c<br>
index 8976c89..fd999b0 100644<br>
--- a/libmultipath/checkers.c<br>
+++ b/libmultipath/checkers.c<br>
@@ -213,7 +213,7 @@ void checker_put (struct checker * dst)<br>
<br>
void checker_repair (struct checker * c)<br>
{<br>
- if (!c)<br>
+ if (!c || !checker_selected(c))<br>
return;<br>
<br>
c->message[0] = '\0';<br>
<span class="HOEnZb"><font color="#888888">--<br>
2.7.2<br>
<br>
</font></span></blockquote></div><br></div>