Hi Mohil,

It helps also to tell us what version of Beam you are using and some more
details. This looks related to
https://issues.apache.org/jira/browse/BEAM-6855 which claims to be resolved
in 2.17.0

Kenn

On Mon, Jul 27, 2020 at 11:47 PM Mohil Khare <mo...@prosimo.io> wrote:

> Hello all,
>
> I think I found the reason for the issue.  Since the exception was thrown
> by StreamingSideInputDoFnRunner.java, I realize that I recently added side
> input to one of my ParDo that does stateful transformations.
> It looks like there is some issue when you add side input (My side input
> was coming via Global window to ParDo in a Fixed Window) to stateful DoFn.
>
> As a work around, instead of adding side input to stateful ParDo, I
> introduced another ParDo  that enriches streaming data with side input
> before flowing into stateful DoFn. That seems to have fixed the problem.
>
>
> Thanks and regards
> Mohil
>
>
>
> On Mon, Jul 27, 2020 at 10:50 AM Mohil Khare <mo...@prosimo.io> wrote:
>
>> Hello All,
>>
>> Any idea how to debug this and find out which stage, which DoFn or which
>> side input is causing the problem?
>> Do I need to override OnTimer with every DoFn to avoid this problem?
>> I thought that some uncaught exceptions were causing this and added
>> various checks and exception handling in all DoFn and still seeing this
>> issue.
>> It has been driving me nuts. And now forget DRAIN, it happens during
>> normal functioning as well. Any help would be appreciated.
>>
>> java.lang.UnsupportedOperationException: Attempt to deliver a timer to a
>> DoFn, but timers are not supported in Dataflow.
>>
>>    1.
>>       1. at org.apache.beam.runners.dataflow.worker.
>>       StreamingSideInputDoFnRunner.onTimer (
>>       StreamingSideInputDoFnRunner.java:86
>>       
>> <https://console.cloud.google.com/debug/fromlog?appModule=Dataflow%20Jobs&appVersion=2020-07-26_20_35_51-7756840794032391970&file=org%2Fapache.beam.runners.dataflow.worker%2FStreamingSideInputDoFnRunner.java&line=86&project=prosimo-test>
>>       )
>>       2. at org.apache.beam.runners.dataflow.worker.
>>       SimpleParDoFn.processUserTimer (SimpleParDoFn.java:360
>>       
>> <https://console.cloud.google.com/debug/fromlog?appModule=Dataflow%20Jobs&appVersion=2020-07-26_20_35_51-7756840794032391970&file=org%2Fapache.beam.runners.dataflow.worker%2FSimpleParDoFn.java&line=360&project=prosimo-test>
>>       )
>>       3. at org.apache.beam.runners.dataflow.worker.
>>       SimpleParDoFn.access$600 (SimpleParDoFn.java:73
>>       
>> <https://console.cloud.google.com/debug/fromlog?appModule=Dataflow%20Jobs&appVersion=2020-07-26_20_35_51-7756840794032391970&file=org%2Fapache.beam.runners.dataflow.worker%2FSimpleParDoFn.java&line=73&project=prosimo-test>
>>       )
>>       4. at org.apache.beam.runners.dataflow.worker.
>>       SimpleParDoFn$TimerType$1.processTimer (SimpleParDoFn.java:444
>>       
>> <https://console.cloud.google.com/debug/fromlog?appModule=Dataflow%20Jobs&appVersion=2020-07-26_20_35_51-7756840794032391970&file=org%2Fapache.beam.runners.dataflow.worker%2FSimpleParDoFn.java&line=444&project=prosimo-test>
>>       )
>>       5. at org.apache.beam.runners.dataflow.worker.
>>       SimpleParDoFn.processTimers (SimpleParDoFn.java:473
>>       
>> <https://console.cloud.google.com/debug/fromlog?appModule=Dataflow%20Jobs&appVersion=2020-07-26_20_35_51-7756840794032391970&file=org%2Fapache.beam.runners.dataflow.worker%2FSimpleParDoFn.java&line=473&project=prosimo-test>
>>       )
>>       6. at org.apache.beam.runners.dataflow.worker.
>>       SimpleParDoFn.processTimers (SimpleParDoFn.java:353
>>       
>> <https://console.cloud.google.com/debug/fromlog?appModule=Dataflow%20Jobs&appVersion=2020-07-26_20_35_51-7756840794032391970&file=org%2Fapache.beam.runners.dataflow.worker%2FSimpleParDoFn.java&line=353&project=prosimo-test>
>>       )
>>       7. at org.apache.beam.runners.dataflow.worker.util.common.worker.
>>       ParDoOperation.finish (ParDoOperation.java:52
>>       
>> <https://console.cloud.google.com/debug/fromlog?appModule=Dataflow%20Jobs&appVersion=2020-07-26_20_35_51-7756840794032391970&file=org%2Fapache.beam.runners.dataflow.worker.util.common.worker%2FParDoOperation.java&line=52&project=prosimo-test>
>>       )
>>       8. at org.apache.beam.runners.dataflow.worker.util.common.worker.
>>       MapTaskExecutor.execute (MapTaskExecutor.java:85
>>       
>> <https://console.cloud.google.com/debug/fromlog?appModule=Dataflow%20Jobs&appVersion=2020-07-26_20_35_51-7756840794032391970&file=org%2Fapache.beam.runners.dataflow.worker.util.common.worker%2FMapTaskExecutor.java&line=85&project=prosimo-test>
>>       )
>>       9. at org.apache.beam.runners.dataflow.worker.
>>       StreamingDataflowWorker.process (StreamingDataflowWorker.java:1350
>>       
>> <https://console.cloud.google.com/debug/fromlog?appModule=Dataflow%20Jobs&appVersion=2020-07-26_20_35_51-7756840794032391970&file=org%2Fapache.beam.runners.dataflow.worker%2FStreamingDataflowWorker.java&line=1350&project=prosimo-test>
>>       )
>>       10. at org.apache.beam.runners.dataflow.worker.
>>       StreamingDataflowWorker.access$1100 (
>>       StreamingDataflowWorker.java:152
>>       
>> <https://console.cloud.google.com/debug/fromlog?appModule=Dataflow%20Jobs&appVersion=2020-07-26_20_35_51-7756840794032391970&file=org%2Fapache.beam.runners.dataflow.worker%2FStreamingDataflowWorker.java&line=152&project=prosimo-test>
>>       )
>>    2.
>>       1. at org.apache.beam.runners.dataflow.worker.
>>       StreamingDataflowWorker$7.run (StreamingDataflowWorker.java:1073)
>>       2. at java.util.concurrent.ThreadPoolExecutor.runWorker (
>>       ThreadPoolExecutor.java:1149)
>>       3. at java.util.concurrent.ThreadPoolExecutor$Worker.run (
>>       ThreadPoolExecutor.java:624)
>>       4. at java.lang.Thread.run (Thread.java:748)
>>
>> Thanks
>> Mohil
>>
>>
>> On Sun, Jul 26, 2020 at 1:50 PM Mohil Khare <mo...@prosimo.io> wrote:
>>
>>> and it seems be due  to TimerType User
>>>
>>> Thanks
>>> Mohil
>>>
>>> On Sun, Jul 26, 2020 at 1:42 PM Mohil Khare <mo...@prosimo.io> wrote:
>>>
>>>> Hello,
>>>>
>>>> I was looking at source code of
>>>> https://github.com/apache/beam/blob/master/runners/google-cloud-dataflow-java/worker/src/main/java/org/apache/beam/runners/dataflow/worker/StreamingSideInputDoFnRunner.java
>>>> ,
>>>>
>>>> It seems the default implementation of OnTimer is to throw (Attempt to
>>>> deliver a timer to a DoFn, but timers are not supported in Dataflow).
>>>>
>>>> Do you know under what circumstances, My code might be throwing this ?
>>>> Not sure if its some issue in 2.19 which might have  been fixed now with
>>>> 2.22
>>>>
>>>> Thanks and Regards
>>>> Mohil
>>>>
>>>>
>>>> On Fri, Jul 24, 2020 at 5:21 PM Mohil Khare <mo...@prosimo.io> wrote:
>>>>
>>>>> Actually NOT JUST DRAIN, seeing it during regular RUN as well.  It's
>>>>> getting flooded with this exception
>>>>>
>>>>> Attempt to deliver a timer to a DoFn, but timers are not supported in
>>>>> Dataflow.
>>>>> The changes that I did are the following:
>>>>> 1. Read one set of logs from one of the kafka topics and create KV(ID,
>>>>> log1)
>>>>> 2. Read 2nd set of logs from another kafka topic and create KV(ID,
>>>>> log2)
>>>>> 3. Put above in session window
>>>>> 4. CoGroupByKey both logs
>>>>>
>>>>> Apart from aforementioned exceptions, I am also seeing the following
>>>>> in worker logs. What I have noticed is that it happens when the pipeline 
>>>>> is
>>>>> silent for a while. i.e. no new logs to be read from Kafka (Not sure if it
>>>>> is the actual reason).
>>>>>
>>>>> 2020-07-24 17:06:43.532 PDT
>>>>> Execution of work for P188 for key
>>>>> cloud@prosimo.ioHe8fc8079-c844-11ea-a6d5-dabe1eb9c630 failed. Will
>>>>> retry locally.
>>>>>
>>>>> <https://console.cloud.google.com/logs/viewer?advancedFilter=insertId%3D%224729149996009968456:27267:0:42419165%22%20resource.type%3D%22dataflow_step%22%20resource.labels.job_id%3D%222020-07-24_16_23_20-4320159532106629306%22%20(logName%3D%22projects%2Fprosimo-test%2Flogs%2Fdataflow.googleapis.com%252Fworker%22)%20severity%3E%3DERROR%0A(timestamp%3E%222020-07-25T00:06:33.224Z%22%20OR%20(insertId%3E%224729149996009968456:27267:0:42264272%22%20AND%20timestamp%3D%222020-07-25T00:06:33.224Z%22))&expandAll=true&interval=JUMP_TO_TIME&dateRangeStart=2020-07-25T00:06:43.532Z&dateRangeEnd=2020-07-25T00:06:43.532Z&project=prosimo-test>
>>>>> 2020-07-24 17:06:53.863 PDT
>>>>> Uncaught exception:
>>>>>
>>>>>
>>>>>
>>>>> On Fri, Jul 24, 2020 at 2:59 PM Mohil Khare <mo...@prosimo.io> wrote:
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> I am on java sdk 2.19 and using dataflow for beam job. I use Timers
>>>>>> for my stateful transformations, but recently I started seeing the
>>>>>> following exception on DRAINING a job. It used to work fine and not sure
>>>>>> what changed.
>>>>>>
>>>>>> *java.lang.UnsupportedOperationException:*
>>>>>>
>>>>> *Attempt to deliver a timer to a DoFn, but timers are not supported in
>>>>> Dataflow. *
>>>>>
>>>>>>
>>>>>>    1.
>>>>>>       1. atorg.apache.beam.runners.dataflow.worker.
>>>>>>       StreamingSideInputDoFnRunner.onTimer (
>>>>>>       StreamingSideInputDoFnRunner.java:86
>>>>>>       
>>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=Dataflow%20Jobs&appVersion=2020-07-24_14_14_42-5619042994908733980&file=org%2Fapache.beam.runners.dataflow.worker%2FStreamingSideInputDoFnRunner.java&line=86&project=prosimo-test>
>>>>>>       )
>>>>>>       2. atorg.apache.beam.runners.dataflow.worker.
>>>>>>       SimpleParDoFn.processUserTimer (SimpleParDoFn.java:360
>>>>>>       
>>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=Dataflow%20Jobs&appVersion=2020-07-24_14_14_42-5619042994908733980&file=org%2Fapache.beam.runners.dataflow.worker%2FSimpleParDoFn.java&line=360&project=prosimo-test>
>>>>>>       )
>>>>>>       3. atorg.apache.beam.runners.dataflow.worker.
>>>>>>       SimpleParDoFn.access$600 (SimpleParDoFn.java:73
>>>>>>       
>>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=Dataflow%20Jobs&appVersion=2020-07-24_14_14_42-5619042994908733980&file=org%2Fapache.beam.runners.dataflow.worker%2FSimpleParDoFn.java&line=73&project=prosimo-test>
>>>>>>       )
>>>>>>       4. atorg.apache.beam.runners.dataflow.worker.
>>>>>>       SimpleParDoFn$TimerType$1.processTimer (SimpleParDoFn.java:444
>>>>>>       
>>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=Dataflow%20Jobs&appVersion=2020-07-24_14_14_42-5619042994908733980&file=org%2Fapache.beam.runners.dataflow.worker%2FSimpleParDoFn.java&line=444&project=prosimo-test>
>>>>>>       )
>>>>>>       5. atorg.apache.beam.runners.dataflow.worker.
>>>>>>       SimpleParDoFn.processTimers (SimpleParDoFn.java:473
>>>>>>       
>>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=Dataflow%20Jobs&appVersion=2020-07-24_14_14_42-5619042994908733980&file=org%2Fapache.beam.runners.dataflow.worker%2FSimpleParDoFn.java&line=473&project=prosimo-test>
>>>>>>       )
>>>>>>       6. atorg.apache.beam.runners.dataflow.worker.
>>>>>>       SimpleParDoFn.processTimers (SimpleParDoFn.java:353
>>>>>>       
>>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=Dataflow%20Jobs&appVersion=2020-07-24_14_14_42-5619042994908733980&file=org%2Fapache.beam.runners.dataflow.worker%2FSimpleParDoFn.java&line=353&project=prosimo-test>
>>>>>>       )
>>>>>>       7. at
>>>>>>       org.apache.beam.runners.dataflow.worker.util.common.worker.
>>>>>>       ParDoOperation.finish (ParDoOperation.java:52
>>>>>>       
>>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=Dataflow%20Jobs&appVersion=2020-07-24_14_14_42-5619042994908733980&file=org%2Fapache.beam.runners.dataflow.worker.util.common.worker%2FParDoOperation.java&line=52&project=prosimo-test>
>>>>>>       )
>>>>>>       8. at
>>>>>>       org.apache.beam.runners.dataflow.worker.util.common.worker.
>>>>>>       MapTaskExecutor.execute (MapTaskExecutor.java:85
>>>>>>       
>>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=Dataflow%20Jobs&appVersion=2020-07-24_14_14_42-5619042994908733980&file=org%2Fapache.beam.runners.dataflow.worker.util.common.worker%2FMapTaskExecutor.java&line=85&project=prosimo-test>
>>>>>>       )
>>>>>>       9. atorg.apache.beam.runners.dataflow.worker.
>>>>>>       StreamingDataflowWorker.process (
>>>>>>       StreamingDataflowWorker.java:1350
>>>>>>       
>>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=Dataflow%20Jobs&appVersion=2020-07-24_14_14_42-5619042994908733980&file=org%2Fapache.beam.runners.dataflow.worker%2FStreamingDataflowWorker.java&line=1350&project=prosimo-test>
>>>>>>       )
>>>>>>       10. atorg.apache.beam.runners.dataflow.worker.
>>>>>>       StreamingDataflowWorker.access$1100 (
>>>>>>       StreamingDataflowWorker.java:152
>>>>>>       
>>>>>> <https://console.cloud.google.com/debug/fromlog?appModule=Dataflow%20Jobs&appVersion=2020-07-24_14_14_42-5619042994908733980&file=org%2Fapache.beam.runners.dataflow.worker%2FStreamingDataflowWorker.java&line=152&project=prosimo-test>
>>>>>>       )
>>>>>>    2. Sometime back I opened jira for an issue which is related to
>>>>>>    this while doing DRAIN:
>>>>>>    https://issues.apache.org/jira/browse/BEAM-10053 (Looks like no
>>>>>>    one has taken a stab on this Jira)
>>>>>>    3. Not sure if the reason is same and due to multiple side inputs
>>>>>>    that i use in my PTransforms.
>>>>>>
>>>>>>
>>>>>> Any help would be appreciated.
>>>>>>
>>>>>> Thanks and Regards
>>>>>> Mohil
>>>>>>
>>>>>>

Reply via email to