Ethanlm commented on a change in pull request #3336:
URL: https://github.com/apache/storm/pull/3336#discussion_r491163677



##########
File path: 
storm-server/src/main/java/org/apache/storm/localizer/AsyncLocalizer.java
##########
@@ -641,7 +642,12 @@ void cleanup() {
 
             try {
                 forEachTopologyDistDir((p, topologyId) -> {
-                    if (!safeTopologyIds.contains(topologyId)) {
+                    String topoJarKey = 
ConfigUtils.masterStormJarKey(topologyId);
+                    String topoCodeKey = 
ConfigUtils.masterStormCodeKey(topologyId);
+                    String topoConfKey = 
ConfigUtils.masterStormConfKey(topologyId);
+                    if (!topologyBlobs.containsKey(topoJarKey)

Review comment:
       I guess your question is if line 650 (`&& 
!topologyBlobs.containsKey(topoConfKey)) {`) executes and before line 651 
(`fsOps.deleteIfExists(p.toFile());`) runs, getTopoJar(topologyId) is called?
   Yes there is a chance. But current change is much better than what we have 
before.
   
   
   Just for future reference, one thing about Rui's comment that I want to note 
is that we still don't know where the 10s delay we observed from the incident 
we had in our production cluster between where `safeTopologyIds` is populated 
and `fsOps.deleteIfExists` is invoked comes from. It could come from 
`forEachTopologyDistDir` file operations. But we don't know yet. Also this 
issue doesn't alway happen. 
    




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to