diff options
| author | Michael Klishin <michael@novemberain.com> | 2017-09-08 20:52:15 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-09-08 20:52:15 -0400 |
| commit | f34890e89c51d21a3fc3714d63d8ad1b15fc9352 (patch) | |
| tree | 9144fce04cdefb113b5eb8d32fb2f52f9b65f0e8 /src | |
| parent | cfc5bde7d40c40a96a094ed0f849ef4f98ff6406 (diff) | |
| parent | d901ecbfacde2f37b5b8a68aa8ca563f286afbea (diff) | |
| download | rabbitmq-server-git-f34890e89c51d21a3fc3714d63d8ad1b15fc9352.tar.gz | |
Merge pull request #1352 from rabbitmq/rabbitmq-server-1332
Introduce x-first-death-{queue,reason,exchange}
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_dead_letter.erl | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/rabbit_dead_letter.erl b/src/rabbit_dead_letter.erl index ca4871d2e0..5ec1da0e34 100644 --- a/src/rabbit_dead_letter.erl +++ b/src/rabbit_dead_letter.erl @@ -112,14 +112,25 @@ group_by_queue_and_reason(Tables) -> end, {sets:new(), []}, Tables), Grouped. +update_x_death_header(Info, undefined) -> + update_x_death_header(Info, []); update_x_death_header(Info, Headers) -> + X = x_death_event_key(Info, <<"exchange">>), Q = x_death_event_key(Info, <<"queue">>), R = x_death_event_key(Info, <<"reason">>), case rabbit_basic:header(<<"x-death">>, Headers) of undefined -> + %% First x-death event gets its own top-level headers. + %% See rabbitmq/rabbitmq-server#1332. + Headers2 = rabbit_misc:set_table_value(Headers, <<"x-first-death-reason">>, + longstr, R), + Headers3 = rabbit_misc:set_table_value(Headers2, <<"x-first-death-queue">>, + longstr, Q), + Headers4 = rabbit_misc:set_table_value(Headers3, <<"x-first-death-exchange">>, + longstr, X), rabbit_basic:prepend_table_header( <<"x-death">>, - [{<<"count">>, long, 1} | Info], Headers); + [{<<"count">>, long, 1} | Info], Headers4); {<<"x-death">>, array, Tables} -> %% group existing x-death headers in case we have some from %% before rabbitmq-server#78 |
