Hi Arun,

After reading your messages a bit more thoroughly (sorry :) ) I managed to
get the basic case working. If I understand you correctly, one should
inherit from BaseRichBolt, which normally requires manual acking, but *not*
perform any manual acking. And one should *not* extends BaseBasicBolt which
normally auto-acks, since this auto-acking will not work as intended with
stateful topologies.

This would unfortunately  mean that we cannot use bolts which were written
for stateless topologies in stateful ones. Are there any plans of adapters
or to change the interface so that they can interoperate?

Best regards
Alexander

On Fri, Mar 4, 2016 at 7:26 PM, Arun Mahadevan <[email protected]> wrote:

> Hi Alexander,
>
> The simple topology like the one you have mentioned with a single spout
> and a stateful bolt with an empty execute works for me. I assume you are
> anchoring the tuple in the spout’s emit.
>
> For a stateful topology, the acking doesn’t work if a bolt extends from
> BaseBasicBolt or if theres an “ack" call in the bolt’s execute.
>
> You could open a JIRA (https://issues.apache.org/jira/browse/STORM) and
> share the sample topology code where you see this issue.
>
> Thanks,
> Arun
>
>
> From: Alexander T
> Reply-To: "[email protected]"
> Date: Friday, March 4, 2016 at 11:15 PM
> To: "[email protected]"
> Subject: Re: Stateful bolts and acking
>
> Hi Arun,
>
> Thank you for your reply. I have tried both manual and automatic acking,
> and neither works. Or rather, the acker is running but my spout is still
> receiving failure callbacks after the message timeout. I have a simple
> topology with a single spout reading from a file and a single empty bolt
> doing nothing. If I change from an empty stateless bolt to an empty
> stateful bolt the acking stops working.
>
> Should I proceed with sending this in as a reproducing test case? Or is
> there anything else which I might have missed?
>
> Regards,
> Alexander
> On Mar 4, 2016 5:30 PM, "Arun Mahadevan" <[email protected]> wrote:
>
>> Hi Alexander,
>>
>> For a stateful topology the anchoring and acking is automatically taken
>> care of.
>>
>> Can you check if any of your bolts inherit BaseBasicBolt or if you are
>> manually acking. Your non-stateful bolts could inherit from BaseRichBolt
>> instead.
>>
>> Thanks,
>> Arun
>>
>>
>> From: Alexander T
>> Reply-To: "[email protected]"
>> Date: Friday, March 4, 2016 at 8:04 PM
>> To: "[email protected]"
>> Subject: Stateful bolts and acking
>>
>> Hello!
>>
>> I'm on the 1.x-branch and trying to use the stateful bolts. But I cannot
>> get it to work with acking. No matter what I try acking simply doesn't seem
>> to have any effect. I see acking tasks suceeding in the logs (ack tuples
>> forwarded to the acker, acker runs successfully), but still acking is not
>> succesful and the tuples fail after the message timeout. I've not been
>> successful in debugging the acker and the rotating map to figure out why
>> acking is not completing. I was wondering if acking is supposed to work
>> with stateful bolts, if so how and if there are any examples? Any ideas
>> would be appreciated.
>>
>> Best regards,
>>
>> Alexander T
>>
>

Reply via email to