[
https://issues.apache.org/jira/browse/STORM-556?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14213303#comment-14213303
]
Jungtaek Lim commented on STORM-556:
------------------------------------
I response it based on current master, so you can checkout current master and
see it helps.
(Need citation)
If channelRef is null, it does reconnect when task have a message to send (by
send() method).
http://netty.io/4.0/api/io/netty/channel/Channel.html#isWritable()
http://stackoverflow.com/questions/11786528/can-a-netty-nio-channel-be-writable-but-not-connected#comment15913035_11791721
Seems like isWritable() return false if and only if write buffer is full. It
doesn't check socket is broken.
So I think it doesn't always false.
> netty Client reconnect bug
> ---------------------------
>
> Key: STORM-556
> URL: https://issues.apache.org/jira/browse/STORM-556
> Project: Apache Storm
> Issue Type: Bug
> Affects Versions: 0.9.2-incubating
> Reporter: Xavier Fu
> Assignee: Xavier Fu
> Labels: ClientID, hangup, netty
>
> if a storm worker die then restarted and the nimbus reassign the task on the
> restarted worker with same host:port, the upstream task will not reconnect
> the host:port and the topology will hang up。
> because the connect has broken and netty Client flush timer
> if (null != channel && channel.isWritable()) {
> flush(channel);
> }
> always false.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)