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)