Skip to content
This repository was archived by the owner on Nov 17, 2020. It is now read-only.

Commit 0d40c7c

Browse files
Merge pull request #230 from feng19/new_sup2_state
fix supervisor2's state for get {badrecord,state} error when release upgrade
2 parents 6e0a79d + 00ff27e commit 0d40c7c

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

Makefile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,12 @@ ifeq ($(call compare_version,$(ERTS_VER),$(tls_atom_version_MAX_ERTS_VER),<),tru
5858
RMQ_ERLC_OPTS += -Ddefine_tls_atom_version
5959
endif
6060

61+
# supervisor's state change from erts-7.0(18)
62+
new_sup2_state_MAX_ERTS_VER = 7.0
63+
ifeq ($(call compare_version,$(ERTS_VER),$(new_sup2_state_MAX_ERTS_VER),>),true)
64+
RMQ_ERLC_OPTS += -Ddefine_new_sup2_state
65+
endif
66+
6167
# For src/*_compat.erl modules, we don't want to set -Werror because for
6268
# instance, warnings about removed functions (e.g. ssl:connection_info/1
6369
# in Erlang 20) can't be turned off.

src/supervisor2.erl

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@
118118

119119
-include("include/old_builtin_types.hrl").
120120

121+
-ifndef(define_new_sup2_state).
121122
-record(state, {name,
122123
strategy :: strategy(),
123124
children = [] :: [child_rec()],
@@ -127,6 +128,18 @@
127128
restarts = [],
128129
module,
129130
args}).
131+
-else.
132+
-record(state, {name,
133+
strategy :: strategy(),
134+
children = [] :: [child_rec()],
135+
dynamics :: ?DICT_TYPE() | ?SET_TYPE(),
136+
intensity :: non_neg_integer(),
137+
period :: pos_integer(),
138+
restarts = [],
139+
dynamic_restarts = 0 :: non_neg_integer(),
140+
module,
141+
args}).
142+
-endif.
130143
-type state() :: #state{}.
131144

132145
-define(is_simple(State), State#state.strategy =:= simple_one_for_one).

0 commit comments

Comments
 (0)