X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Debbugs%2FControl.pm;h=32239afbf7426b221a802d32d6331b202bdf4923;hb=8a615efb55a87343bc3e059c4e966847f29987e4;hp=20f82dfc2741e1d527b89cb330dcbb2dc0a13b6c;hpb=c1569efefef3fc46846a6b6c6a16787aab78c246;p=debbugs.git diff --git a/Debbugs/Control.pm b/Debbugs/Control.pm index 20f82df..32239af 100644 --- a/Debbugs/Control.pm +++ b/Debbugs/Control.pm @@ -2089,6 +2089,7 @@ sub set_merged { $param{show_bug_info} and not __internal_request(1); $bug_info_shown{$change_bug} = 1; __allow_relocking($param{locks},[keys %data]); + eval { for my $change (@{$changes->{$change_bug}}) { if ($change->{field} eq 'blockedby' or $change->{field} eq 'blocks') { my %target_blockedby; @@ -2125,6 +2126,12 @@ sub set_merged { ); } } + }; + if ($@) { + __disallow_relocking($param{locks}); + __end_control(%info); + croak "Failure while trying to adjust bugs, please report this as a bug: $@"; + } __disallow_relocking($param{locks}); my ($data,$n_locks) = __lock_and_load_merged_bugs(bugs_to_load => [keys %merging],