You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@storm.apache.org by "Roman (Jira)" <ji...@apache.org> on 2022/01/19 09:33:00 UTC
[jira] [Updated] (STORM-3818) Joining more than 2 streams in Stream API
[ https://issues.apache.org/jira/browse/STORM-3818?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Roman updated STORM-3818:
-------------------------
Description:
Joining two streams in storms Stream API works fine as described in the docs with the scheme: {{streamA.window(...).join(streamB)}}
However, when joining the result with a third join, a `punctuation error` is thrown.
So there is a way missing of joining {_}three streams{_}? I think, that one window configuration is enough. So the pseudocode would look like: {{{}streamA.window(...).join(streamB).join(streamC){}}}. However, this raises a punctuation error.
Here is the error log:
{code:java}
Caused by: java.lang.IllegalStateException: Received punctuation from streams [s6] expected [s7]
at org.apache.storm.streams.ProcessorBoltDelegate.shouldPunctuate(ProcessorBoltDelegate.java:287) ~[classes/:?]
at org.apache.storm.streams.ProcessorBoltDelegate.punctuateInitialProcessors(ProcessorBoltDelegate.java:189) ~[classes/:?]
at org.apache.storm.streams.ProcessorBoltDelegate.process(ProcessorBoltDelegate.java:179) ~[classes/:?]
at org.apache.storm.streams.WindowedProcessorBolt.execute(WindowedProcessorBolt.java:68) ~[classes/:?]
at org.apache.storm.topology.WindowedBoltExecutor.boltExecute(WindowedBoltExecutor.java:371) ~[classes/:?]
at org.apache.storm.topology.WindowedBoltExecutor$1.onActivation(WindowedBoltExecutor.java:364) ~[classes/:?]
at org.apache.storm.windowing.WindowManager.onTrigger(WindowManager.java:156) ~[classes/:?]
at org.apache.storm.windowing.TimeTriggerPolicy$1.run(TimeTriggerPolicy.java:119) ~[classes/:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) ~[?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
... 1 more {code}
was:
Joining two streams in storms Stream API works fine as described in the docs with the scheme: {{streamB.join(streamA.window(...))}}
{{{}{}}}However, when joining the result with a third join, a `punctuation error` is thrown.
So there is a way missing of joining {_}three streams{_}? I think, that one window configuration is enough. So the pseudocode would look like: {{{}streamC.join(streamB.join(streamA.window(...))){}}}. However, this raises a punctuation error.
> Joining more than 2 streams in Stream API
> -----------------------------------------
>
> Key: STORM-3818
> URL: https://issues.apache.org/jira/browse/STORM-3818
> Project: Apache Storm
> Issue Type: Bug
> Components: storm-client
> Affects Versions: 2.2.0
> Reporter: Roman
> Priority: Major
> Labels: join, streaming-api,, window
>
> Joining two streams in storms Stream API works fine as described in the docs with the scheme: {{streamA.window(...).join(streamB)}}
> However, when joining the result with a third join, a `punctuation error` is thrown.
> So there is a way missing of joining {_}three streams{_}? I think, that one window configuration is enough. So the pseudocode would look like: {{{}streamA.window(...).join(streamB).join(streamC){}}}. However, this raises a punctuation error.
> Here is the error log:
> {code:java}
> Caused by: java.lang.IllegalStateException: Received punctuation from streams [s6] expected [s7]
> at org.apache.storm.streams.ProcessorBoltDelegate.shouldPunctuate(ProcessorBoltDelegate.java:287) ~[classes/:?]
> at org.apache.storm.streams.ProcessorBoltDelegate.punctuateInitialProcessors(ProcessorBoltDelegate.java:189) ~[classes/:?]
> at org.apache.storm.streams.ProcessorBoltDelegate.process(ProcessorBoltDelegate.java:179) ~[classes/:?]
> at org.apache.storm.streams.WindowedProcessorBolt.execute(WindowedProcessorBolt.java:68) ~[classes/:?]
> at org.apache.storm.topology.WindowedBoltExecutor.boltExecute(WindowedBoltExecutor.java:371) ~[classes/:?]
> at org.apache.storm.topology.WindowedBoltExecutor$1.onActivation(WindowedBoltExecutor.java:364) ~[classes/:?]
> at org.apache.storm.windowing.WindowManager.onTrigger(WindowManager.java:156) ~[classes/:?]
> at org.apache.storm.windowing.TimeTriggerPolicy$1.run(TimeTriggerPolicy.java:119) ~[classes/:?]
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) ~[?:?]
> at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) ~[?:?]
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
> ... 1 more {code}
>
--
This message was sent by Atlassian Jira
(v8.20.1#820001)