From 52ff68ce5127538e14dd1408bbd9568b397f3485 Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
Date: Mon, 6 Jul 2020 20:11:43 +0300
Subject: [PATCH] SL-13497 Sometimes plugin process isn't terminated correctly.

---
 indra/llplugin/llpluginprocessparent.cpp | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/indra/llplugin/llpluginprocessparent.cpp b/indra/llplugin/llpluginprocessparent.cpp
index eb6cb1b503a..7d18bae9470 100644
--- a/indra/llplugin/llpluginprocessparent.cpp
+++ b/indra/llplugin/llpluginprocessparent.cpp
@@ -152,8 +152,18 @@ void LLPluginProcessParent::shutdown()
     mapInstances_t::iterator it;
     for (it = sInstances.begin(); it != sInstances.end(); ++it)
     {
-        (*it).second->setState(STATE_GOODBYE);
-        (*it).second->idle();
+        EState state = (*it).second->mState;
+        if (state != STATE_CLEANUP
+            || state != STATE_EXITING
+            || state != STATE_DONE
+            || state != STATE_ERROR)
+        {
+            (*it).second->setState(STATE_GOODBYE);
+        }
+        if (state != STATE_DONE)
+        {
+            (*it).second->idle();
+        }
     }
     sInstances.clear();
 }
-- 
GitLab