yeah .. looks like a bug still exists. So how does this work ? Shall I open a new Jira ?
Thanks and regards Mohil On Thu, Jul 30, 2020 at 10:39 PM Reuven Lax <re...@google.com> wrote: > I believe that the person trying to fix BEAM-6855 was unable to reproduce > it in test, and therefore assumed that the bug was fixed. However it > appears that the bug still exists. > > On Wed, Jul 29, 2020 at 10:36 AM Kenneth Knowles <k...@apache.org> wrote: > >> 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 >>>>>>>> >>>>>>>>