You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Brandon Williams (JIRA)" <ji...@apache.org> on 2014/02/10 16:26:21 UTC

[jira] [Comment Edited] (CASSANDRA-6685) Nodes never bootstrap if schema is empty

    [ https://issues.apache.org/jira/browse/CASSANDRA-6685?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13896657#comment-13896657 ] 

Brandon Williams edited comment on CASSANDRA-6685 at 2/10/14 3:26 PM:
----------------------------------------------------------------------

bq. Wasn't this change made to guard against the case when schema messages get delayed and responses aren't received before bootstrap begins?

It was an extra guard, which is apparently slightly flawed.  The heart of the problem in 6648 was the event to check if pulling was needed firing too early, and not pulling because the remote node was not known to be part of the ring yet and thus considered a fat client.

bq. For more than a few nodes, people won't list all nodes as a seed and, with this issue, non-seed nodes won't join until a keyspace is created.

{noformat}auto_bootstrap = false{noformat} will not only solve this, but also skip the ring delay sleep and be much faster.



was (Author: brandon.williams):
bq. Wasn't this change made to guard against the case when schema messages get delayed and responses aren't received before bootstrap begins?

It was an extra guard, which is apparently slightly flawed.  The heart of the problem in 6648 was the event to check if pulling was needing firing too early, and not pulling because the remote node was known to be part of the ring yet and thus considered a fat client.

bq. For more than a few nodes, people won't list all nodes as a seed and, with this issue, non-seed nodes won't join until a keyspace is created.

{noformat}auto_bootstrap = false{noformat} will not only solve this, but also skip the ring delay sleep and be much faster.


> Nodes never bootstrap if schema is empty
> ----------------------------------------
>
>                 Key: CASSANDRA-6685
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6685
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Richard Low
>
> Since 1.2.15, bootstrap never completes if the schema is empty. The bootstrapping node endlessly prints:
> bq. {{INFO 12:37:44,863 JOINING: waiting for schema information to complete}}
> until you add something to the schema (i.e. create a keyspace).
> The problem looks to be caused by CASSANDRA-6648, where MigrationManager.isReadForBootstrap() was changed to:
> bq. {{return Schema.instance.getVersion() != null && !Schema.emptyVersion.equals(Schema.instance.getVersion());}}
> This is wrong since {{Schema.emptyVersion.equals(Schema.instance.getVersion())}} is always true if there is no schema.
> We need some different logic for determining when the schema is propagated.
> I haven't tested, but I expect this issue appears in 2.0.5 too.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)