Rui Li created STORM-3701:
-----------------------------

             Summary: Race Condition between cleanup thread and download tasks
                 Key: STORM-3701
                 URL: https://issues.apache.org/jira/browse/STORM-3701
             Project: Apache Storm
          Issue Type: Bug
          Components: storm-server
            Reporter: Rui Li
            Assignee: Rui Li


We captured a issue on our supervisor:
2020-06-09 23:30:08.723 o.a.s.l.LocalizedResource AsyncLocalizer Task Executor 
- 0 [INFO] completelyRemoveUnusedUser directu for directory 
/home/y/var/storm/supervisor/usercache/directu
2020-06-09 23:30:08.724 o.a.s.l.AsyncLocalizer AsyncLocalizer Task Executor - 0 
[WARN] Caught Exception While Downloading (rethrowing)...
java.io.FileNotFoundException: File 
'/home/y/var/storm/supervisor/stormdist/dg_itp-605-1591745383/stormconf.ser' 
does not exist
        at 
org.apache.storm.shade.org.apache.commons.io.FileUtils.openInputStream(FileUtils.java:297)
 ~[storm-shaded-deps-2.3.0.y.jar:2.3.0.y]
        at 
org.apache.storm.shade.org.apache.commons.io.FileUtils.readFileToByteArray(FileUtils.java:1851)
 ~[storm-shaded-deps-2.3.0.y.jar:2.3.0.y]
        at 
org.apache.storm.utils.ConfigUtils.readSupervisorStormConfGivenPath(ConfigUtils.java:316)
 ~[storm-client-2.3.0.y.jar:2.3.0.y]
        at 
org.apache.storm.utils.ConfigUtils.readSupervisorStormConfImpl(ConfigUtils.java:477)
 ~[storm-client-2.3.0.y.jar:2.3.0.y]
        at 
org.apache.storm.utils.ConfigUtils.readSupervisorStormConf(ConfigUtils.java:311)
 ~[storm-client-2.3.0.y.jar:2.3.0.y]
        at 
org.apache.storm.localizer.AsyncLocalizer$DownloadBlobs.get(AsyncLocalizer.java:698)
 [storm-server-2.3.0.y.jar:2.3.0.y]
        at 
org.apache.storm.localizer.AsyncLocalizer$DownloadBlobs.get(AsyncLocalizer.java:683)
 [storm-server-2.3.0.y.jar:2.3.0.y]
        at 
java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1604)
 [?:1.8.0_242]
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
[?:1.8.0_242]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
[?:1.8.0_242]
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
 [?:1.8.0_242]
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
 [?:1.8.0_242]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
[?:1.8.0_242]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
[?:1.8.0_242]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242]
2020-06-09 23:30:08.725 o.a.s.d.s.Slot SLOT_6782 [ERROR] 
java.io.FileNotFoundException: File 
'/home/y/var/storm/supervisor/stormdist/dg_itp-605-1591745383/stormconf.ser' 
does not exist
2020-06-09 23:30:08.725 o.a.s.l.AsyncLocalizer SLOT_6782 [INFO] Port and 
assignment info: PortAndAssignmentImpl\{dg_itp-605-1591745383 on 6782}
2020-06-09 23:30:08.726 o.a.s.l.AsyncLocalizer SLOT_6782 [WARN] Local base 
blobs have not been downloaded yet.
java.io.FileNotFoundException: File 
'/home/y/var/storm/supervisor/stormdist/dg_itp-605-1591745383/stormconf.ser' 
does not exist
        at 
org.apache.storm.shade.org.apache.commons.io.FileUtils.openInputStream(FileUtils.java:297)
 ~[storm-shaded-deps-2.3.0.y.jar:2.3.0.y]
        at 
org.apache.storm.shade.org.apache.commons.io.FileUtils.readFileToByteArray(FileUtils.java:1851)
 ~[storm-shaded-deps-2.3.0.y.jar:2.3.0.y]
        at 
org.apache.storm.utils.ConfigUtils.readSupervisorStormConfGivenPath(ConfigUtils.java:316)
 ~[storm-client-2.3.0.y.jar:2.3.0.y]
        at 
org.apache.storm.utils.ConfigUtils.readSupervisorStormConfImpl(ConfigUtils.java:477)
 ~[storm-client-2.3.0.y.jar:2.3.0.y]
        at 
org.apache.storm.utils.ConfigUtils.readSupervisorStormConf(ConfigUtils.java:311)
 ~[storm-client-2.3.0.y.jar:2.3.0.y]
        at 
org.apache.storm.localizer.AsyncLocalizer.getLocalResources(AsyncLocalizer.java:362)
 ~[storm-server-2.3.0.y.jar:2.3.0.y]
        at 
org.apache.storm.localizer.AsyncLocalizer.releaseSlotFor(AsyncLocalizer.java:472)
 [storm-server-2.3.0.y.jar:2.3.0.y]
        at 
org.apache.storm.daemon.supervisor.Slot.handleWaitingForBlobLocalization(Slot.java:549)
 [storm-server-2.3.0.y.jar:2.3.0.y]
        at 
org.apache.storm.daemon.supervisor.Slot.stateMachineStep(Slot.java:298) 
[storm-server-2.3.0.y.jar:2.3.0.y]
        at org.apache.storm.daemon.supervisor.Slot.run(Slot.java:1039) 
[storm-server-2.3.0.y.jar:2.3.0.y]
The root issue is the delay at 
[https://github.com/apache/storm/blob/master/storm-server/src/main/java/org/apache/storm/localizer/AsyncLocalizer.java#L641]
 which will cause the safeTopologyIds information out-of-date.

 

 

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to