if we have multiple jobs for the same vmid with the same schedule, the last_sync, next_sync and vmid will always be the same, so the order depends on the order of the $jobs hash (which is random; thanks perl)
to have a fixed order, take the jobid also into consideration Signed-off-by: Dominik Csapak <[email protected]> --- changes from v1: * combined all returns into one src/PVE/ReplicationState.pm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/PVE/ReplicationState.pm b/src/PVE/ReplicationState.pm index 8eebb42..16b3d90 100644 --- a/src/PVE/ReplicationState.pm +++ b/src/PVE/ReplicationState.pm @@ -318,11 +318,10 @@ sub get_next_job { my $jobb = $jobs->{$b}; my $sa = $joba->{state}; my $sb = $jobb->{state}; - my $res = $sa->{last_iteration} <=> $sb->{last_iteration}; - return $res if $res != 0; - $res = $joba->{next_sync} <=> $jobb->{next_sync}; - return $res if $res != 0; - return $joba->{guest} <=> $jobb->{guest}; + return $sa->{last_iteration} <=> $sb->{last_iteration} || + $joba->{next_sync} <=> $jobb->{next_sync} || + $joba->{guest} <=> $jobb->{guest} || + $a cmp $b; }; foreach my $jobid (sort $sort_func keys %$jobs) { -- 2.30.2 _______________________________________________ pve-devel mailing list [email protected] https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
