Meta server: fix modified chunks handling in chunk server hello processing by removing obsolete code that, in the case of replay, was keeping chunk replicas in the table instead of removing them. This logic causes chunk inventory divergence in case of replay (and on backups) when version change with pending add fails, due the downstream code assumption that the replica is not in the table. Keeping modified (chunk versions are different on meta and chunk servers) chunk replicas in the table is now obsolete, as chunk server state machine explicitly keeps track of all chunk operations created as a result of chunk server hello processing in order to handle the case of possible transaction log write failures. Set chunk server state machine state to the end of hello chunk inventory processing when restoring chunk server, chunk server state machine can only appear in checkpoint as a result of successful hello processing.
Meta server: fix modified chunks handling in chunk server hello processing by removing obsolete code that, in the case of replay, was keeping chunk replicas in the table instead of removing them. This logic causes chunk inventory divergence in case of replay (and on backups) when version change with pending add fails, due the downstream code assumption that the replica is not in the table. Keeping modified (chunk versions are different on meta and chunk servers) chunk replicas in the table is now obsolete, as chunk server state machine explicitly keeps track of all chunk operations created as a result of chunk server hello processing in order to handle the case of possible transaction log write failures. Set chunk server state machine state to the end of hello chunk inventory processing when restoring chunk server, chunk server state machine can only appear in checkpoint as a result of successful hello processing.

quantcast/qfs,quantcast/qfs,quantcast/qfs,quantcast/qfs,quantcast/qfs,quantcast/qfs,quantcast/qfs,quantcast/qfs