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

Jeremiah Jordan commented on CASSANDRA-5831:
--------------------------------------------

Still not sure what is really going on here.  "Directories.migrateSSTables();" 
is called before "SystemTable.checkHealth()" on a regular C* startup.  All 
sstablescrub and sstableupgrade do is call Directories.migrateSSTables();, then 
call DatabaseDescriptor.loadSchemas();, so why does "SystemTable.checkHealth" 
fail after that?  SystemTable.finishStartup(); which does the table upgrade 
doesn't get called until well after checkHealth.  Is calling 
DatabaseDescriptor.loadSchemas(); in the sstable* scripts doing something that 
breaks checkHealth?  I don't know that the answer should be "change check 
health".  Should we call upgrade tables from the migration stuff in sstable* 
scripts?

Regular C* startup does:
{noformat}
Directories.migrateSSTables();
SystemTable.checkHealth();
DatabaseDescriptor.loadSchemas();
{noformat}

sstable* do:
{noformat}
Directories.migrateSSTables();
DatabaseDescriptor.loadSchemas();
{noformat}

So if you run sstable* then start c* the order is:

{noformat}
Directories.migrateSSTables();
DatabaseDescriptor.loadSchemas();
SystemTable.checkHealth();
DatabaseDescriptor.loadSchemas();
{noformat}

                
> Running sstableupgrade on C* 1.0 data dir, before starting C* 1.2 for the 
> first time breaks stuff
> -------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-5831
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5831
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Tools
>            Reporter: Jeremiah Jordan
>            Assignee: Tyler Hobbs
>            Priority: Minor
>             Fix For: 1.2.9
>
>         Attachments: 0001-Handle-pre-1.1-data-directory-layout.patch, 
> 0002-Handle-old-system-data-in-health-check.patch
>
>
> If you try to upgrade from C* 1.0.X to 1.2.X and run offline sstableupgrade 
> to try and migrate the sstables before starting 1.2.X for the first time, it 
> messes up the system folder, because it doesn't migrate it right, and then C* 
> 1.2 can't start.
> sstableupgrade should either refuse to run against a C* 1.0 data folder, or 
> migrate stuff the right way.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to