aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_process.c
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2019-03-28 19:59:58 +0100
committerRickard Green <[email protected]>2019-04-05 14:50:27 +0200
commitf2671c2ef47f8c49cd5fab6e1737ed08d99ea5d2 (patch)
treeaa69869ff75dadbcdf8c3432ec370c7af409d844 /erts/emulator/beam/erl_process.c
parent060d9110ffb305d6ce5f974788948463e481203b (diff)
downloadotp-f2671c2ef47f8c49cd5fab6e1737ed08d99ea5d2.tar.gz
otp-f2671c2ef47f8c49cd5fab6e1737ed08d99ea5d2.tar.bz2
otp-f2671c2ef47f8c49cd5fab6e1737ed08d99ea5d2.zip
Fail when we cannot encode term in binary
Fail when we cannot encode term in binary instead of producing a faulty result.
Diffstat (limited to 'erts/emulator/beam/erl_process.c')
-rw-r--r--erts/emulator/beam/erl_process.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c
index 9e662632b4..4780b7fb21 100644
--- a/erts/emulator/beam/erl_process.c
+++ b/erts/emulator/beam/erl_process.c
@@ -12149,6 +12149,7 @@ erts_proc_exit_handle_dist_monitor(ErtsMonitor *mon, void *vctxt, Sint reds)
case ERTS_DSIG_SEND_OK:
break;
case ERTS_DSIG_SEND_TOO_LRG:
+ erts_kill_dist_connection(dep, dist->connection_id);
erts_set_gc_state(c_p, 1);
break;
default:
@@ -12397,6 +12398,7 @@ erts_proc_exit_handle_dist_link(ErtsLink *lnk, void *vctxt, Sint reds)
case ERTS_DSIG_SEND_OK:
break;
case ERTS_DSIG_SEND_TOO_LRG:
+ erts_kill_dist_connection(dep, dist->connection_id);
erts_set_gc_state(c_p, 1);
break;
default:
@@ -12893,7 +12895,9 @@ restart:
switch (result) {
case ERTS_DSIG_SEND_OK:
+ break;
case ERTS_DSIG_SEND_TOO_LRG: /*SEND_SYSTEM_LIMIT*/
+ erts_kill_dist_connection(ctx->dep, ctx->connection_id);
break;
case ERTS_DSIG_SEND_YIELD: /*SEND_YIELD_RETURN*/
case ERTS_DSIG_SEND_CONTINUE: { /*SEND_YIELD_CONTINUE*/