Hi.

IMO there seems to be race condition between BoltReaderRunnable.run() and
ShellBolt.cleanup().
ShellBolt.cleanup() interrupts ReaderThread but actually few of methods
inside BoltReaderRunnable.run() throws InterruptedException. (Accessing
_pendingWrites throws InterruptedException, but I cannot find any others.)
So we assume that interrupting ReaderThread doesn't stop its flow at that
time before encountering _pendingWrite.

1. ReaderThread.run() passes "while(_running)" check and dive into loop.
2. ShellBolt.cleanup() interrupts ReaderThread. It has marked as
'interrupted'.
3. ShellBolt.cleanup() clears _inputs
4. ReaderThread.run() reads shell message, and it is emit, so it calls
handleEmit().
5. ShellBolt.handleEmit() checks _inputs but nothing found. So it throws
RuntimeException, as you stated.

I'll file relevant issue to Storm JIRA.

Normally topologies are killed with deactivating spouts first, and having
enough times to process any pending tuples, so when Bolt is cleared, Bolt
doesn't process any tuples at that time.

You may want to kill topology with enough times, maybe message timeout sec
or twice would be fine.

Thanks.
Jungtaek Lim (HeartSaVioR)


2015-06-03 18:20 GMT+09:00 charlie quillard <[email protected]>:

>  Hello,
>
>
>  I have a problem with my shellbolt, which uses a cpp bolt(with this
> wrapper : http://demeter.inf.ed.ac.uk/cross/stormcpp.html ) with the
> multilang module. This one dies because the shellBolt's attribute "_inputs"
> is empty and call the next runtime exception : "Anchored onto #Anchor after
> ack/fail" .
>
>
>  The log: http://pastebin.com/pG9mHt8X
>
>
>  I used storm 0.9.4, and i think that my error is connected to this
> reported issue : https://issues.apache.org/jira/browse/STORM-531
>
> If someone can help me , i would appreciate it.
>
>
>  Best regards,
>
> Charlie
>
>
>
>
>


-- 
Name : 임 정택
Blog : http://www.heartsavior.net / http://dev.heartsavior.net
Twitter : http://twitter.com/heartsavior
LinkedIn : http://www.linkedin.com/in/heartsavior

Reply via email to