You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@storm.apache.org by "Jungtaek Lim (JIRA)" <ji...@apache.org> on 2014/11/15 04:07:33 UTC

[jira] [Commented] (STORM-556) netty Client reconnect bug

    [ 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)