Jungtaek Lim created STORM-2496:
-----------------------------------

             Summary: Dependency artifacts should be uploaded to blobstore with 
READ permission for all
                 Key: STORM-2496
                 URL: https://issues.apache.org/jira/browse/STORM-2496
             Project: Apache Storm
          Issue Type: Bug
          Components: storm-core
    Affects Versions: 2.0.0, 1.1.0
            Reporter: Jungtaek Lim
            Assignee: Jungtaek Lim
            Priority: Critical


When we submit topology via specific user with dependency artifacts, submitter 
uploads artifacts to the blobstore with user which runs the submission.

Since uploaded artifacts are uploaded once and shared globally, other user 
might need to use uploaded artifact. (This is completely fine for non-secured 
cluster.) In this case, Supervisor fails to get artifact and crashes in result.

{code}
2017-04-28 04:56:46.594 o.a.s.l.AsyncLocalizer Async Localizer [WARN] Caught 
Exception While Downloading (rethrowing)...
org.apache.storm.generated.AuthorizationException: null
        at 
org.apache.storm.localizer.Localizer.downloadBlob(Localizer.java:535) 
~[storm-core-1.1.0.2.6.0.3-8.jar:1.1.0.2.6.0.3-8]
        at org.apache.storm.localizer.Localizer.access$000(Localizer.java:65) 
~[storm-core-1.1.0.2.6.0.3-8.jar:1.1.0.2.6.0.3-8]
        at 
org.apache.storm.localizer.Localizer$DownloadBlob.call(Localizer.java:505) 
~[storm-core-1.1.0.2.6.0.3-8.jar:1.1.0.2.6.0.3-8]
        at 
org.apache.storm.localizer.Localizer$DownloadBlob.call(Localizer.java:481) 
~[storm-core-1.1.0.2.6.0.3-8.jar:1.1.0.2.6.0.3-8]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
~[?:1.8.0_112]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
[?:1.8.0_112]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
[?:1.8.0_112]
        at java.lang.Thread.run(Thread.java:745) [?:1.8.0_112]
2017-04-28 04:56:46.597 o.a.s.d.s.Slot SLOT_6701 [ERROR] Error when processing 
event
java.util.concurrent.ExecutionException: AuthorizationException(msg:<user> does 
not have READ access to dep-org.apache.curator-curator-framework-jar-2.10.0.jar)
        at java.util.concurrent.FutureTask.report(FutureTask.java:122) 
~[?:1.8.0_112]
        at java.util.concurrent.FutureTask.get(FutureTask.java:206) 
~[?:1.8.0_112]
        at 
org.apache.storm.localizer.LocalDownloadedResource$NoCancelFuture.get(LocalDownloadedResource.java:63)
 ~[storm-core-1.1.0.2.6.0.3-8.jar:1.1.0.2.6.0.3-8]
        at 
org.apache.storm.daemon.supervisor.Slot.handleWaitingForBlobLocalization(Slot.java:380)
 ~[storm-core-1.1.0.2.6.0.3-8.jar:1.1.0.2.6.0.3-8]
        at 
org.apache.storm.daemon.supervisor.Slot.stateMachineStep(Slot.java:275) 
~[storm-core-1.1.0.2.6.0.3-8.jar:1.1.0.2.6.0.3-8]
        at org.apache.storm.daemon.supervisor.Slot.run(Slot.java:740) 
~[storm-core-1.1.0.2.6.0.3-8.jar:1.1.0.2.6.0.3-8]
Caused by: org.apache.storm.generated.AuthorizationException
        at 
org.apache.storm.localizer.Localizer.downloadBlob(Localizer.java:535) 
~[storm-core-1.1.0.2.6.0.3-8.jar:1.1.0.2.6.0.3-8]
        at org.apache.storm.localizer.Localizer.access$000(Localizer.java:65) 
~[storm-core-1.1.0.2.6.0.3-8.jar:1.1.0.2.6.0.3-8]
        at 
org.apache.storm.localizer.Localizer$DownloadBlob.call(Localizer.java:505) 
~[storm-core-1.1.0.2.6.0.3-8.jar:1.1.0.2.6.0.3-8]
        at 
org.apache.storm.localizer.Localizer$DownloadBlob.call(Localizer.java:481) 
~[storm-core-1.1.0.2.6.0.3-8.jar:1.1.0.2.6.0.3-8]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
~[?:1.8.0_112]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
[?:1.8.0_112]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
[?:1.8.0_112]
        at java.lang.Thread.run(Thread.java:745) [?:1.8.0_112]
2017-04-28 04:56:46.597 o.a.s.u.Utils SLOT_6701 [ERROR] Halting process: Error 
when processing an event
java.lang.RuntimeException: Halting process: Error when processing an event
        at org.apache.storm.utils.Utils.exitProcess(Utils.java:1774) 
~[storm-core-1.1.0.2.6.0.3-8.jar:1.1.0.2.6.0.3-8]
        at org.apache.storm.daemon.supervisor.Slot.run(Slot.java:774) 
~[storm-core-1.1.0.2.6.0.3-8.jar:1.1.0.2.6.0.3-8]
2017-04-28 04:56:46.599 o.a.s.d.s.Supervisor Thread-7 [INFO] Shutting down 
supervisor 775c158b-0a2d-40be-9e02-a9662d8bc5c4
{code}

So we need to upload artifacts with READ permission to all, or at least 
supervisor should be able to read them at all.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to