You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Sylvain Lebresne (JIRA)" <ji...@apache.org> on 2011/06/20 14:35:47 UTC

[jira] [Created] (CASSANDRA-2797) Repair hangs if a neighbor has nothing to send

Repair hangs if a neighbor has nothing to send 
-----------------------------------------------

                 Key: CASSANDRA-2797
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2797
             Project: Cassandra
          Issue Type: Bug
          Components: Core
    Affects Versions: 0.7.6
            Reporter: Sylvain Lebresne
            Assignee: Sylvain Lebresne
            Priority: Minor
             Fix For: 0.7.7, 0.8.2
         Attachments: 0001-Always-initiate-streaming-transfer-to-notify-remote-.patch

This is actually a streaming problem. If a StreamOutSession has nothing to transfer (i.e, no sstables have the requested ranges), it will not even initiate the transfer and simply close the session right away. The problem is that if the session was initiated by a remote end (through a StreamRequestMessage), the remote end will never be notified and never run his callback.


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CASSANDRA-2797) Repair hangs if a neighbor has nothing to send

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2797?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13052173#comment-13052173 ] 

Hudson commented on CASSANDRA-2797:
-----------------------------------

Integrated in Cassandra-0.8 #178 (See [https://builds.apache.org/job/Cassandra-0.8/178/])
    fix repair hanging if a neighbor has nothing to send
patch by slebresne; reviewed by jbellis for CASSANDRA-2797

slebresne : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1137711
Files : 
* /cassandra/branches/cassandra-0.8/CHANGES.txt
* /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/streaming/StreamOut.java


> Repair hangs if a neighbor has nothing to send 
> -----------------------------------------------
>
>                 Key: CASSANDRA-2797
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2797
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.8.0
>            Reporter: Sylvain Lebresne
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>              Labels: repair, streaming
>             Fix For: 0.8.2
>
>         Attachments: 0001-Always-initiate-streaming-transfer-to-notify-remote-.patch
>
>
> This is actually a streaming problem. If a StreamOutSession has nothing to transfer (i.e, no sstables have the requested ranges), it will not even initiate the transfer and simply close the session right away. The problem is that if the session was initiated by a remote end (through a StreamRequestMessage), the remote end will never be notified and never run his callback.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CASSANDRA-2797) Repair hangs if a neighbor has nothing to send

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2797?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13052076#comment-13052076 ] 

Jonathan Ellis commented on CASSANDRA-2797:
-------------------------------------------

+1

> Repair hangs if a neighbor has nothing to send 
> -----------------------------------------------
>
>                 Key: CASSANDRA-2797
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2797
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.8.0
>            Reporter: Sylvain Lebresne
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>              Labels: repair, streaming
>             Fix For: 0.8.2
>
>         Attachments: 0001-Always-initiate-streaming-transfer-to-notify-remote-.patch
>
>
> This is actually a streaming problem. If a StreamOutSession has nothing to transfer (i.e, no sstables have the requested ranges), it will not even initiate the transfer and simply close the session right away. The problem is that if the session was initiated by a remote end (through a StreamRequestMessage), the remote end will never be notified and never run his callback.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (CASSANDRA-2797) Repair hangs if a neighbor has nothing to send

Posted by "Sylvain Lebresne (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-2797?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sylvain Lebresne updated CASSANDRA-2797:
----------------------------------------

    Fix Version/s:     (was: 0.8.2)
                   0.8.1

> Repair hangs if a neighbor has nothing to send 
> -----------------------------------------------
>
>                 Key: CASSANDRA-2797
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2797
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.8.0
>            Reporter: Sylvain Lebresne
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>              Labels: repair, streaming
>             Fix For: 0.8.1
>
>         Attachments: 0001-Always-initiate-streaming-transfer-to-notify-remote-.patch
>
>
> This is actually a streaming problem. If a StreamOutSession has nothing to transfer (i.e, no sstables have the requested ranges), it will not even initiate the transfer and simply close the session right away. The problem is that if the session was initiated by a remote end (through a StreamRequestMessage), the remote end will never be notified and never run his callback.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (CASSANDRA-2797) Repair hangs if a neighbor has nothing to send

Posted by "Sylvain Lebresne (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-2797?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sylvain Lebresne updated CASSANDRA-2797:
----------------------------------------

    Attachment:     (was: 0001-Always-initiate-streaming-transfer-to-notify-remote-.patch)

> Repair hangs if a neighbor has nothing to send 
> -----------------------------------------------
>
>                 Key: CASSANDRA-2797
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2797
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.7.6
>            Reporter: Sylvain Lebresne
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>              Labels: repair, streaming
>             Fix For: 0.7.7, 0.8.2
>
>
> This is actually a streaming problem. If a StreamOutSession has nothing to transfer (i.e, no sstables have the requested ranges), it will not even initiate the transfer and simply close the session right away. The problem is that if the session was initiated by a remote end (through a StreamRequestMessage), the remote end will never be notified and never run his callback.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (CASSANDRA-2797) Repair hangs if a neighbor has nothing to send

Posted by "Sylvain Lebresne (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-2797?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sylvain Lebresne updated CASSANDRA-2797:
----------------------------------------

    Attachment: 0001-Always-initiate-streaming-transfer-to-notify-remote-.patch

Apparently the code was already wired to handle initiating a session with nothing to transfer, but a if prevented that code path. Patch attached against 0.7.

> Repair hangs if a neighbor has nothing to send 
> -----------------------------------------------
>
>                 Key: CASSANDRA-2797
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2797
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.7.6
>            Reporter: Sylvain Lebresne
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>              Labels: repair, streaming
>             Fix For: 0.7.7, 0.8.2
>
>         Attachments: 0001-Always-initiate-streaming-transfer-to-notify-remote-.patch
>
>
> This is actually a streaming problem. If a StreamOutSession has nothing to transfer (i.e, no sstables have the requested ranges), it will not even initiate the transfer and simply close the session right away. The problem is that if the session was initiated by a remote end (through a StreamRequestMessage), the remote end will never be notified and never run his callback.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (CASSANDRA-2797) Repair hangs if a neighbor has nothing to send

Posted by "Sylvain Lebresne (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-2797?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sylvain Lebresne updated CASSANDRA-2797:
----------------------------------------

    Attachment: 0001-Always-initiate-streaming-transfer-to-notify-remote-.patch

You are right. I hit this on 0.8 and wrongly assumed 0.7 was impacted too while this is actually a problem due to the mentioned refactor. Attaching patch against 0.8, 0.7 is not impacted.

> Repair hangs if a neighbor has nothing to send 
> -----------------------------------------------
>
>                 Key: CASSANDRA-2797
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2797
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.8.0
>            Reporter: Sylvain Lebresne
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>              Labels: repair, streaming
>             Fix For: 0.8.2
>
>         Attachments: 0001-Always-initiate-streaming-transfer-to-notify-remote-.patch
>
>
> This is actually a streaming problem. If a StreamOutSession has nothing to transfer (i.e, no sstables have the requested ranges), it will not even initiate the transfer and simply close the session right away. The problem is that if the session was initiated by a remote end (through a StreamRequestMessage), the remote end will never be notified and never run his callback.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (CASSANDRA-2797) Repair hangs if a neighbor has nothing to send

Posted by "Sylvain Lebresne (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-2797?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sylvain Lebresne updated CASSANDRA-2797:
----------------------------------------

    Affects Version/s:     (was: 0.7.6)
                       0.8.0
        Fix Version/s:     (was: 0.7.7)

> Repair hangs if a neighbor has nothing to send 
> -----------------------------------------------
>
>                 Key: CASSANDRA-2797
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2797
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.8.0
>            Reporter: Sylvain Lebresne
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>              Labels: repair, streaming
>             Fix For: 0.8.2
>
>         Attachments: 0001-Always-initiate-streaming-transfer-to-notify-remote-.patch
>
>
> This is actually a streaming problem. If a StreamOutSession has nothing to transfer (i.e, no sstables have the requested ranges), it will not even initiate the transfer and simply close the session right away. The problem is that if the session was initiated by a remote end (through a StreamRequestMessage), the remote end will never be notified and never run his callback.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CASSANDRA-2797) Repair hangs if a neighbor has nothing to send

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2797?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13052018#comment-13052018 ] 

Jonathan Ellis commented on CASSANDRA-2797:
-------------------------------------------

I thought transferSSTables is supposed to be only called for locally-initiated transfers, and transferRangesForRequest is for ones initiated remotely.  (Confusing, I know.  This got cleaned up in 0.8.)

> Repair hangs if a neighbor has nothing to send 
> -----------------------------------------------
>
>                 Key: CASSANDRA-2797
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2797
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.7.6
>            Reporter: Sylvain Lebresne
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>              Labels: repair, streaming
>             Fix For: 0.7.7, 0.8.2
>
>         Attachments: 0001-Always-initiate-streaming-transfer-to-notify-remote-.patch
>
>
> This is actually a streaming problem. If a StreamOutSession has nothing to transfer (i.e, no sstables have the requested ranges), it will not even initiate the transfer and simply close the session right away. The problem is that if the session was initiated by a remote end (through a StreamRequestMessage), the remote end will never be notified and never run his callback.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira