this repo has no description
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

Fix wrong generation leading to no mutations being copied

+7 -2
+7 -2
lib/servers/manager.ex
··· 322 322 [sequencer_id, resolver_id, distributor_id] = ids 323 323 324 324 # Create new TLog generation 325 + prev_tlog_generation = hd(state.cluster.tlog_generations) 325 326 new_tlog_generation = %TLogGeneration{generation: state.cluster.generation, start_version: max_kcv + 1, tlog_ids: tlog_ids} 326 - assert new_tlog_generation.start_version > hd(state.cluster.tlog_generations).start_version 327 + assert new_tlog_generation.start_version > prev_tlog_generation.start_version 327 328 328 329 state = update_in(state.cluster.tlog_generations, &[new_tlog_generation | &1]) 329 330 ··· 333 334 state = recruit(state, gen, Hobbes.Servers.TLog, tlog_ids, %{cluster: state.cluster, meta_pairs: meta_pairs}) 334 335 335 336 # Copy mutations in range [max_kcv + 1, min_dv] to the new TLogs 336 - {state, last_batch_version} = copy_mutations_to_new_generation(state, hd(state.cluster.tlog_generations), new_tlog_generation, meta_pairs, new_tlog_generation.start_version, min_dv) 337 + {state, last_batch_version} = copy_mutations_to_new_generation(state, prev_tlog_generation, new_tlog_generation, meta_pairs, new_tlog_generation.start_version, min_dv) 337 338 if last_batch_version != nil, do: assert last_batch_version > max_kcv and last_batch_version <= min_dv 338 339 339 340 # If there are no batches on the TLogs in the range (max_kcv, min_dv], ··· 390 391 %Server{pid: pid} = state.cluster.servers[id] 391 392 pid 392 393 end) 394 + 395 + assert length(recovered_old_tlog_pids) > 0 396 + # TODO: 2 -> (replication_factor - 1) 397 + assert length(recovered_old_tlog_pids) >= (length(old_gen.tlog_ids) - 2) 393 398 394 399 batches = 395 400 recovered_old_tlog_pids