Github user hustfxj commented on the pull request:
https://github.com/apache/storm/pull/1209#issuecomment-196220384
Spout itself emits messages by SpoutOutputCollector 's emit(). If lots of
messages failed, then acker will trigger SpoutOutputCollector emits those
failed messages. It may happen dead lock. Because down bolts may slow to handle
messsages and it will block emit(), then spout/acker thread will block. Thus
others messages which is send by those can't be handled by acker. So the bolts
will block. The scene may be called "loop dead lock". I want say that this PR
is sound to this scene. Because It can make us find the dead lock in time.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---