mirror of
https://github.com/ubicloud/ubicloud.git
synced 2025-10-05 06:12:09 +08:00
The main fix here is to the synchronization between the threads that notify for partition numbers 2 and 3. Don't send the notify for partition 2 until after the notification for partition 3 has been received and applied by the repartitioner and checked by the spec. While here, use 3 separate queues for synchronization, instead of only 2 queues, to rule out the possibility of queue unexpected queue reuse causing the problem. Add expectations for each queue pop and thread join, so that if there is a timeout expiration, you can better diagnose the cause of the spec failure. This passed 100 spec runs without failure locally, where the previous code generally didn't get through 30 spec runs without failure locally. |
||
---|---|---|
.. | ||
hosting | ||
kubernetes | ||
minio | ||
validation | ||
victoria_metrics | ||
access_control_model_tag_spec.rb | ||
authorization_spec.rb | ||
billing_rate_spec.rb | ||
clog_spec.rb | ||
cloudflare_client_spec.rb | ||
github_spec.rb | ||
invoice_generator_spec.rb | ||
log_dna_batcher_spec.rb | ||
metrics_spec.rb | ||
metrics_target_methods_spec.rb | ||
metrics_target_resource_spec.rb | ||
monitor_resource_type_spec.rb | ||
monitor_runner_spec.rb | ||
monitorable_resource_spec.rb | ||
option_spec.rb | ||
pagination_spec.rb | ||
repartitioner_spec.rb | ||
runpod_client_spec.rb | ||
sem_snap_spec.rb | ||
ssh_key_spec.rb | ||
system_parser_spec.rb | ||
thread_printer_spec.rb | ||
util_spec.rb | ||
validation_spec.rb |