It is definitely a big deal if @Setup is not getting called! There are no
special cases that would skip @Setup. Please do report what you can.

That said, lazily doing setup (via null check or some such as you mention)
is perfectly fine and often a more robust programming pattern. Upside: you
can't accidentally use uninitialized things. Downside: it might mask
repeated initialization and only manifest as poor performance.

Kenn

On Fri, Nov 17, 2017 at 9:00 AM, Jacob Marble <jmar...@kochava.com> wrote:

> I tried to write a simpler DoFn that induces the error, but it works fine.
> Working around the issue today by using @StartBundle with a null check, and
> that seems to be working.
>
> If this really is a big deal, then it needs to be reported, so I'll try to
> find time to write a broken example.
>
> Jacob
>
> On Thu, Nov 16, 2017 at 10:27 PM, Eugene Kirpichov <kirpic...@google.com>
> wrote:
>
>> Could you give more details, e.g. a code snippet that reproduces the
>> issue, and describe how you determine that @Setup hasn't been called?
>>
>> On Thu, Nov 16, 2017 at 6:58 PM Derek Hao Hu <phoenixin...@gmail.com>
>> wrote:
>>
>>> ​I've been using DoFn.Setup method in Dataflow and it seems to be
>>> working fine.​
>>>
>>> On Thu, Nov 16, 2017 at 4:56 PM, Jacob Marble <jmar...@kochava.com>
>>> wrote:
>>>
>>>> This one is weird.
>>>>
>>>> A DoFn I wrote:
>>>> - stateful
>>>> - used plenty in a streaming pipeline
>>>> - direct and dataflow runners
>>>> - works fine
>>>>
>>>> Now:
>>>> - new batch pipeline
>>>> - @DoFn.Setup method not called
>>>> - direct runner works properly (logs from setup method are output)
>>>> - dataflow runner simply doesn't call the setup method
>>>>
>>>> Is this possibly a Beam misuse? Javadoc for DoFn.Setup doesn't hint at
>>>> anything, so I'm suspecting Dataflow bug?
>>>>
>>>> Jacob
>>>>
>>>
>>>
>>>
>>> --
>>> Derek Hao Hu
>>>
>>> Software Engineer | Snapchat
>>> Snap Inc.
>>>
>>
>

Reply via email to