diff options
| author | Michael Klishin <mklishin@pivotal.io> | 2016-04-27 13:34:35 -0500 |
|---|---|---|
| committer | Michael Klishin <mklishin@pivotal.io> | 2016-04-27 13:34:35 -0500 |
| commit | 5b5d9b983b90d4840d7dc791449536e5448e6e62 (patch) | |
| tree | 75bc0cd739735b9b8b53422ef5e307ad8eddddf5 | |
| parent | 473beb92b3bd3b22dd26b565af19a49e1151f3d9 (diff) | |
| parent | 702956f2c69cba624146180f4c715912012392d2 (diff) | |
| download | rabbitmq-server-git-5b5d9b983b90d4840d7dc791449536e5448e6e62.tar.gz | |
Merge branch 'rabbitmq-server-767' into stable
| -rw-r--r-- | src/rabbit_dead_letter.erl | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/rabbit_dead_letter.erl b/src/rabbit_dead_letter.erl index 252405d62b..8d426f072a 100644 --- a/src/rabbit_dead_letter.erl +++ b/src/rabbit_dead_letter.erl @@ -139,7 +139,19 @@ update_x_death_header(Info, Headers) -> end, rabbit_misc:set_table_value( Headers, <<"x-death">>, array, - [{table, rabbit_misc:sort_field_table(Info1)} | Others]) + [{table, rabbit_misc:sort_field_table(Info1)} | Others]); + {<<"x-death">>, InvalidType, Header} -> + rabbit_log:warning("Message has invalid x-death header (type: ~p)." + " Resetting header ~p~n", + [InvalidType, Header]), + %% if x-death is something other than an array (list) + %% then we reset it: this happens when some clients consume + %% a message and re-publish is, converting header values + %% to strings, intentionally or not. + %% See rabbitmq/rabbitmq-server#767 for details. + rabbit_misc:set_table_value( + Headers, <<"x-death">>, array, + [{table, [{<<"count">>, long, 1} | Info]}]) end. ensure_xdeath_event_count({table, Info}, InitialVal) when InitialVal >= 1 -> |
