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

byronhsu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/submarine.git


The following commit(s) were added to refs/heads/master by this push:
     new d67dc67  SUBMARINE-902. Experiment page stuck on loading
d67dc67 is described below

commit d67dc6727d3d81dc3bd61ffac9a06cc86ab782ef
Author: Lisa <[email protected]>
AuthorDate: Mon Jul 5 17:50:06 2021 +0800

    SUBMARINE-902. Experiment page stuck on loading
    
    ### What is this PR for?
    Delete experiment in experimentService when the submitter can't find it.
    
    ### What type of PR is it?
    [Bug Fix]
    
    ### Todos
    * [ ] - Task
    
    ### What is the Jira issue?
    https://issues.apache.org/jira/projects/SUBMARINE/issues/SUBMARINE-902
    
    ### How should this be tested?
    
    ### Screenshots (if appropriate)
    
    ### Questions:
    * Do the license files need updating? No
    * Are there breaking changes for older versions? No
    * Does this need new documentation? No
    
    Author: Lisa <[email protected]>
    
    Signed-off-by: byronhsu <[email protected]>
    
    Closes #648 from aeioulisa/SUBMARINE-902 and squashes the following commits:
    
    1c3a462a [Lisa] delete experiment when submitter can't find it
---
 .../server/experiment/ExperimentManager.java       | 27 ++++++++++++++--------
 1 file changed, 17 insertions(+), 10 deletions(-)

diff --git 
a/submarine-server/server-core/src/main/java/org/apache/submarine/server/experiment/ExperimentManager.java
 
b/submarine-server/server-core/src/main/java/org/apache/submarine/server/experiment/ExperimentManager.java
index ee429a3..1662306 100644
--- 
a/submarine-server/server-core/src/main/java/org/apache/submarine/server/experiment/ExperimentManager.java
+++ 
b/submarine-server/server-core/src/main/java/org/apache/submarine/server/experiment/ExperimentManager.java
@@ -156,10 +156,16 @@ public class ExperimentManager {
     List<Experiment> experimentList = new ArrayList<>();
     List<ExperimentEntity> entities = experimentService.selectAll();
 
-    for (ExperimentEntity entity: entities) {
+    for (ExperimentEntity entity : entities) {
       Experiment experiment = buildExperimentFromEntity(entity);
-      Experiment foundExperiment = 
submitter.findExperiment(experiment.getSpec());
-
+      Experiment foundExperiment;
+      try {
+        foundExperiment = submitter.findExperiment(experiment.getSpec());
+      } catch (SubmarineRuntimeException e) {
+        LOG.warn("Submitter can not find experiment: {}, will delete it", 
entity.getId());
+        experimentService.delete(entity.getId());
+        continue;
+      }
       LOG.info("Found experiment: {}", foundExperiment.getStatus());
       if (status == null || 
status.toLowerCase().equals(foundExperiment.getStatus().toLowerCase())) {
         experiment.rebuild(foundExperiment);
@@ -173,7 +179,7 @@ public class ExperimentManager {
   /**
    * Patch the experiment
    *
-   * @param id   experiment id
+   * @param id      experiment id
    * @param newSpec spec
    * @return object
    * @throws SubmarineRuntimeException the service error
@@ -229,7 +235,7 @@ public class ExperimentManager {
     List<ExperimentLog> experimentLogList = new ArrayList<>();
     List<ExperimentEntity> entities = experimentService.selectAll();
 
-    for (ExperimentEntity entity: entities) {
+    for (ExperimentEntity entity : entities) {
       Experiment experiment = buildExperimentFromEntity(entity);
       Experiment foundExperiment = 
submitter.findExperiment(experiment.getSpec());
 
@@ -265,8 +271,8 @@ public class ExperimentManager {
     experiment.rebuild(foundExperiment);
 
     return submitter.getExperimentLogName(
-      experiment.getSpec(),
-      experiment.getExperimentId().toString()
+        experiment.getSpec(),
+        experiment.getExperimentId().toString()
     );
   }
 
@@ -314,13 +320,14 @@ public class ExperimentManager {
 
   public ExperimentId generateExperimentId() {
     return ExperimentId.newInstance(SubmarineServer.getServerTimeStamp(),
-      experimentCounter.incrementAndGet());
+        experimentCounter.incrementAndGet());
   }
 
   /**
    * Create a new experiment instance from entity, and filled
-   *   1. experimentId
-   *   2. spec
+   * 1. experimentId
+   * 2. spec
+   *
    * @param entity
    * @return Experiment
    */

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to