You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nlpcraft.apache.org by ar...@apache.org on 2020/04/03 18:55:06 UTC

[incubator-nlpcraft] branch master updated: Fix for NLPCRAFT-31.

This is an automated email from the ASF dual-hosted git repository.

aradzinski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git


The following commit(s) were added to refs/heads/master by this push:
     new 3767b84  Fix for NLPCRAFT-31.
3767b84 is described below

commit 3767b845b81dfb35ade4cca345ad798bdeaece24
Author: Aaron Radzinzski <ar...@datalingvo.com>
AuthorDate: Fri Apr 3 11:55:02 2020 -0700

    Fix for NLPCRAFT-31.
---
 src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala    |  8 +++++++-
 .../apache/nlpcraft/probe/mgrs/conn/NCConnectionManager.scala |  6 +++---
 .../apache/nlpcraft/probe/mgrs/deploy/NCDeployManager.scala   |  7 ++++---
 .../org/apache/nlpcraft/probe/mgrs/model/NCModelManager.scala |  3 ++-
 .../nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala    | 11 +++++++----
 .../apache/nlpcraft/server/nlp/core/NCNlpServerManager.scala  |  3 ++-
 .../scala/org/apache/nlpcraft/server/tx/NCTxManager.scala     |  3 ++-
 7 files changed, 27 insertions(+), 14 deletions(-)

diff --git a/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala b/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
index 671b3d6..caba0bb 100644
--- a/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
@@ -171,7 +171,13 @@ private [probe] object NCProbeBoot extends LazyLogging with NCOpenCensusTrace {
         catching(classOf[Throwable]) either startManagers(cfg) match {
             case Left(e) ⇒ // Exception.
                 e match {
-                    case x: NCException ⇒ logger.error(s"Failed to start probe.", x)
+                    case x: NCException ⇒
+                        logger.error(s"Failed to start probe.", x)
+
+                        stopManagers()
+
+                        logger.info("Managers stopped.")
+
                     case x: Throwable ⇒ logger.error("Failed to start probe due to unexpected error.", x)
                 }
                 
diff --git a/src/main/scala/org/apache/nlpcraft/probe/mgrs/conn/NCConnectionManager.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/conn/NCConnectionManager.scala
index 1094b16..a59eea0 100644
--- a/src/main/scala/org/apache/nlpcraft/probe/mgrs/conn/NCConnectionManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/conn/NCConnectionManager.scala
@@ -52,7 +52,7 @@ object NCConnectionManager extends NCService {
     @volatile private var probeGuid: String = _
     
     // Internal semaphores.
-    @volatile private var stopSem: AtomicInteger = _
+    private val stopSem = new AtomicInteger(1)
     
     private final val sysProps: Properties = System.getProperties
     private final val localHost: InetAddress = InetAddress.getLocalHost
@@ -278,8 +278,8 @@ object NCConnectionManager extends NCService {
 
         probeGuid = U.genGuid()
         dnLinkQueue = mutable.Queue.empty[Serializable]
-        stopSem = new AtomicInteger(1)
-        
+        stopSem.set(1)
+
         val ctrlLatch = new CountDownLatch(1)
      
         ctrlThread = U.mkThread("probe-ctrl-thread") { t ⇒
diff --git a/src/main/scala/org/apache/nlpcraft/probe/mgrs/deploy/NCDeployManager.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/deploy/NCDeployManager.scala
index f6a7e1d..746bdda 100644
--- a/src/main/scala/org/apache/nlpcraft/probe/mgrs/deploy/NCDeployManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/deploy/NCDeployManager.scala
@@ -266,10 +266,11 @@ object NCDeployManager extends NCService with DecorateAsScala {
 
     @throws[NCE]
     override def stop(parent: Span = null): Unit = startScopedSpan("stop", parent) { _ ⇒
-        if (isStarted)
+        if (modelFactory != null)
             modelFactory.terminate()    
-        
-        models.clear()
+
+        if (models != null)
+            models.clear()
         
         super.stop()
     }
diff --git a/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/NCModelManager.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/NCModelManager.scala
index a7c470a..6bf48f3 100644
--- a/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/NCModelManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/model/NCModelManager.scala
@@ -134,7 +134,8 @@ object NCModelManager extends NCService with DecorateAsScala {
       */
     override def stop(parent: Span = null): Unit = startScopedSpan("stop", parent) { _ ⇒
         mux.synchronized {
-            models.values.foreach(m ⇒ discardModel(m.model))
+            if (models != null)
+                models.values.foreach(m ⇒ discardModel(m.model))
         }
 
         super.stop()
diff --git a/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
index 9fbf5f5..a54898d 100644
--- a/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
@@ -69,6 +69,8 @@ object NCProbeEnrichmentManager extends NCService with NCOpenCensusModelStats {
 
     @volatile private var embeddedCbs: mutable.Set[EMBEDDED_CB] = _
 
+    private final val mux = new Object()
+
     private object Config extends NCConfigurable {
         final private val pre = "nlpcraft.probe"
 
@@ -89,8 +91,9 @@ object NCProbeEnrichmentManager extends NCService with NCOpenCensusModelStats {
     }
     
     override def stop(parent: Span = null): Unit = startScopedSpan("stop", parent) { _ ⇒
-        embeddedCbs.synchronized {
-            embeddedCbs.clear()
+        mux.synchronized {
+            if (embeddedCbs != null)
+                embeddedCbs.clear()
         }
 
         super.stop()
@@ -101,7 +104,7 @@ object NCProbeEnrichmentManager extends NCService with NCOpenCensusModelStats {
       * @param cb Callback.
       */
     private [probe] def addEmbeddedCallback(cb: EMBEDDED_CB): Unit = {
-        embeddedCbs.synchronized {
+        mux.synchronized {
             embeddedCbs.add(cb)
         }
     }
@@ -111,7 +114,7 @@ object NCProbeEnrichmentManager extends NCService with NCOpenCensusModelStats {
       * @param cb Callback.
       */
     private [probe] def removeEmbeddedCallback(cb: EMBEDDED_CB): Unit = {
-        embeddedCbs.synchronized {
+        mux.synchronized {
             embeddedCbs.remove(cb)
         }
     }
diff --git a/src/main/scala/org/apache/nlpcraft/server/nlp/core/NCNlpServerManager.scala b/src/main/scala/org/apache/nlpcraft/server/nlp/core/NCNlpServerManager.scala
index aad5d8e..589e64c 100644
--- a/src/main/scala/org/apache/nlpcraft/server/nlp/core/NCNlpServerManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/nlp/core/NCNlpServerManager.scala
@@ -113,7 +113,8 @@ object NCNlpServerManager extends NCService {
     }
 
     override def stop(parent: Span = null): Unit = startScopedSpan("stop", parent) { _ ⇒
-        ners.values.foreach(_.stop())
+        if (ners != null)
+            ners.values.foreach(_.stop())
 
         if (parser != null && parser.isStarted)
             parser.stop()
diff --git a/src/main/scala/org/apache/nlpcraft/server/tx/NCTxManager.scala b/src/main/scala/org/apache/nlpcraft/server/tx/NCTxManager.scala
index c368717..e9789e0 100644
--- a/src/main/scala/org/apache/nlpcraft/server/tx/NCTxManager.scala
+++ b/src/main/scala/org/apache/nlpcraft/server/tx/NCTxManager.scala
@@ -51,7 +51,8 @@ object NCTxManager extends NCService with NCIgniteInstance {
       */
     override def stop(parent: Span = null): Unit = startScopedSpan("stop", parent) { _ ⇒
         // Close all still attached JDBC connections on stop.
-        cons.values.foreach(U.close)
+        if (cons != null)
+            cons.values.foreach(U.close)
         
         super.stop()
     }