Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't abort pmap when a linked process exits normally #4

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

kevin-spil
Copy link

We discovered an issue where a linked process would exit normally during the execution of the pmap resulting in the pmap being aborted. This change makes sure that we ignore clean exits from linked processes and only respond to abnormal behaviour.

@kevin-spil
Copy link
Author

Since our tests don't actually seem to work on the CI:

make test
rebar skip_deps=true eunit
==> spapi-router (eunit)
Compiled test/spr_util_eunit.erl
======================== EUnit ========================
module 'spr_sup'
module 'spapi_router_callback_noop'
module 'spr_ets_handler'
module 'spr_app'
module 'spapi_router_callback_eunit'
12:41:13.730 [info] Application lager started on node '[email protected]'
12:41:13.735 [info] Added nodes: ['[email protected]']
12:41:13.735 [info] Added resource: {stdlib,'[email protected]'}
12:41:13.735 [info] Added resource: {kernel,'[email protected]'}
  12:41:13.735 [info] Application spapi_router started on node '[email protected]'
spapi_router_callback_eunit: callback_test_...[0.001 s] ok
  spapi_router_callback_eunit: callback_test_...ok
  spapi_router_callback_eunit: callback_test_...12:41:13.883 [notice] reload_world_list invoked
12:41:13.885 [info] Added nodes: ['[email protected]']
12:41:13.885 [info] Added resource: {stdlib,'[email protected]'}
12:41:13.885 [info] Added resource: {kernel,'[email protected]'}
12:41:13.887 [info] {nodedown: ''[email protected]''}
[0.247 s] ok
  [done in 0.262 s]
12:41:13.998 [info] Application spapi_router exited with reason: stopped
module 'spr_ets_handler_eunit'
  spr_ets_handler_eunit:17: ensure_epmd_test_...[0.008 s] ok
  spr_ets_handler_eunit:26: requested_hostname_test_...ok
  spr_ets_handler_eunit:28: requested_hostname_test_...ok
  spr_ets_handler_eunit:30: requested_hostname_test_...ok
  spr_ets_handler_eunit:32: requested_hostname_test_...ok
  spr_ets_handler_eunit:34: requested_hostname_test_...ok
  spr_ets_handler_eunit:60: gather_nodes_test_...12:41:14.976 [error] Problem reloading nodes from host "host_badaddress" : address
[0.001 s] ok
  spr_ets_handler_eunit:62: gather_nodes_test_...[0.001 s] ok
  spr_ets_handler_eunit:63: gather_nodes_test_...ok
  spr_ets_handler_eunit:65: gather_nodes_test_...ok
  spr_ets_handler_eunit:67: gather_nodes_test_...ok
  spr_ets_handler_eunit:69: gather_nodes_test_...ok
  spr_ets_handler_eunit:98: get_one_node_locally_test_...ok
  spr_ets_handler_eunit:127: get_one_from_several_local_nodes_test_...ok
  spr_ets_handler_eunit:146: get_one_node_invalidapp_test_...ok
  spr_ets_handler_eunit:165: get_all_nodes_invalidapp_test_...ok
  spr_ets_handler_eunit:187: get_one_node_oneservice_twonodes_test_...ok
  spr_ets_handler_eunit:188: get_one_node_oneservice_twonodes_test_...ok
  spr_ets_handler_eunit:210: get_all_nodes_test_...ok
  spr_ets_handler_eunit:211: get_all_nodes_test_...ok
  spr_ets_handler_eunit:234: get_nodes_applications_crashing_test_...ok
  spr_ets_handler_eunit:246: get_nodes_applications_no_node_test_...ok
  spr_ets_handler_eunit:247: get_nodes_applications_no_node_test_...ok
  spr_ets_handler_eunit:260: get_nodes_applications_no_services_test_...ok
  spr_ets_handler_eunit:261: get_nodes_applications_no_services_test_...ok
  spr_ets_handler_eunit:279: get_nodes_applications_no_matching_services_test_...ok
  spr_ets_handler_eunit:280: get_nodes_applications_no_matching_services_test_...ok
  spr_ets_handler_eunit:301: get_nodes_applications_one_node_test_...ok
  spr_ets_handler_eunit:302: get_nodes_applications_one_node_test_...ok
  spr_ets_handler_eunit:324: get_nodes_applications_multiple_node_test_...ok
  spr_ets_handler_eunit:325: get_nodes_applications_multiple_node_test_...ok
  spr_ets_handler_eunit:334: get_nodes_applications_not_requested_host_test_...ok
  spr_ets_handler_eunit:335: get_nodes_applications_not_requested_host_test_...ok
  spr_ets_handler_eunit:345: get_nodes_applications_test_...ok
  spr_ets_handler_eunit:367: get_current_nodes_test_...ok
  spr_ets_handler_eunit:368: get_current_nodes_test_...12:41:15.583 [info] Added nodes: ['[email protected]','[email protected]']
[0.001 s] ok
  spr_ets_handler_eunit:370: get_current_nodes_test_...12:41:15.586 [info] Added nodes: ['[email protected]']
[0.001 s] ok
12:41:16.103 [info] Added nodes: ['[email protected]']
12:41:16.104 [info] Added resource: {compiler,'[email protected]'}
12:41:16.104 [info] Application spapi_router started on node '[email protected]'
  spr_ets_handler_eunit:399: node_disconnection_test_...ok
  spr_ets_handler_eunit:401: node_disconnection_test_...ok
12:41:16.113 [info] {nodedown: ''[email protected]''}
12:41:16.118 [info] Application spapi_router exited with reason: stopped
12:41:16.832 [info] Added nodes: ['[email protected]','[email protected]']
12:41:16.832 [info] Added resource: {compiler,'[email protected]'}
12:41:16.832 [info] Added resource: {compiler,'[email protected]'}
12:41:16.832 [info] Added resource: {runtime_tools,'[email protected]'}
12:41:16.832 [info] Added resource: {kernel,'[email protected]'}
12:41:16.832 [info] Added resource: {kernel,'[email protected]'}
12:41:16.833 [info] Application spapi_router started on node '[email protected]'
  spr_ets_handler_eunit:445: node_selective_connect_test_...ok
  spr_ets_handler_eunit:446: node_selective_connect_test_...ok
  spr_ets_handler_eunit:447: node_selective_connect_test_...ok
  spr_ets_handler_eunit:448: node_selective_connect_test_...ok
12:41:16.850 [info] {nodedown: ''[email protected]''}
12:41:16.852 [info] {nodedown: ''[email protected]''}
12:41:16.855 [info] Application spapi_router exited with reason: stopped
12:41:17.564 [info] Application spapi_router started on node '[email protected]'
  spr_ets_handler_eunit:486: nonexisting_node_requested_test_...ok
  spr_ets_handler_eunit:487: nonexisting_node_requested_test_...ok
  spr_ets_handler_eunit:488: nonexisting_node_requested_test_...ok
  spr_ets_handler_eunit:489: nonexisting_node_requested_test_...ok
12:41:17.585 [info] Application spapi_router exited with reason: stopped
12:41:18.298 [info] Added nodes: ['[email protected]','[email protected]','[email protected]','[email protected]']
12:41:18.298 [info] Added resource: {compiler,'[email protected]'}
12:41:18.299 [info] Added resource: {compiler,'[email protected]'}
12:41:18.299 [info] Added resource: {compiler,'[email protected]'}
12:41:18.299 [info] Added resource: {runtime_tools,'[email protected]'}
12:41:18.299 [info] Added resource: {kernel,'[email protected]'}
12:41:18.299 [info] Added resource: {kernel,'[email protected]'}
12:41:18.299 [info] Added resource: {kernel,'[email protected]'}
12:41:18.299 [info] Added resource: {kernel,'[email protected]'}
12:41:18.300 [info] Application spapi_router started on node '[email protected]'
  12:41:18.300 [notice] set_node_down invoked for node ''[email protected]''
spr_ets_handler_eunit:526: set_node_down_test_...ok
  spr_ets_handler_eunit:527: set_node_down_test_...ok
  spr_ets_handler_eunit:528: set_node_down_test_...ok
  spr_ets_handler_eunit:529: set_node_down_test_...ok
  spr_ets_handler_eunit:530: set_node_down_test_...ok
  spr_ets_handler_eunit:531: set_node_down_test_...12:41:18.315 [notice] set_node_down invoked for node ''[email protected]''
ok
12:41:18.321 [info] {nodedown: ''[email protected]''}
12:41:18.324 [info] {nodedown: ''[email protected]''}
12:41:18.327 [info] {nodedown: ''[email protected]''}
12:41:18.329 [info] {nodedown: ''[email protected]''}
12:41:18.330 [info] Application spapi_router exited with reason: stopped
12:41:18.330 [info] Added resource: {service_filter,'[email protected]'}
12:41:18.330 [info] Added resource: {service_filter,'[email protected]'}
12:41:18.330 [info] Added resource: {service_blaat,'[email protected]'}
12:41:18.331 [info] Added resource: {service_echo,'[email protected]'}
  spr_ets_handler_eunit:566: update_routing_table_test_...12:41:18.331 [info] Lost resource: {service_filter,'[email protected]'}
12:41:18.331 [info] Lost resource: {service_blaat,'[email protected]'}
12:41:18.331 [info] Lost resource: {service_echo,'[email protected]'}
ok
  spr_ets_handler_eunit:567: update_routing_table_test_...ok
  spr_ets_handler_eunit:569: update_routing_table_test_...ok
  spr_ets_handler_eunit:571: update_routing_table_test_...ok
  spr_ets_handler_eunit:574: update_routing_table_test_...ok
  spr_ets_handler_eunit:575: update_routing_table_test_...ok
  spr_ets_handler_eunit:577: update_routing_table_test_...ok
  spr_ets_handler_eunit:578: update_routing_table_test_...ok
  spr_ets_handler_eunit:580: update_routing_table_test_...ok
  spr_ets_handler_eunit:582: update_routing_table_test_...ok
  spr_ets_handler_eunit:584: update_routing_table_test_...ok
  spr_ets_handler_eunit:586: update_routing_table_test_...ok
  spr_ets_handler_eunit:589: update_routing_table_test_...ok
  spr_ets_handler_eunit:591: update_routing_table_test_...ok
  spr_ets_handler_eunit:593: update_routing_table_test_...ok
  spr_ets_handler_eunit:595: update_routing_table_test_...ok
  spr_ets_handler_eunit:638: get_host_names_test_...ok
  spr_ets_handler_eunit:639: get_host_names_test_...ok
  spr_ets_handler_eunit:652: get_host_names_empty_list_test_...ok
  spr_ets_handler_eunit:671: get_host_names_from_file_test_...ok
12:41:19.126 [info] Added nodes: ['[email protected]','[email protected]','[email protected]','[email protected]']
12:41:19.126 [info] Added resource: {compiler,'[email protected]'}
12:41:19.126 [info] Added resource: {compiler,'[email protected]'}
12:41:19.126 [info] Added resource: {compiler,'[email protected]'}
12:41:19.126 [info] Added resource: {runtime_tools,'[email protected]'}
12:41:19.126 [info] Added resource: {kernel,'[email protected]'}
12:41:19.126 [info] Added resource: {kernel,'[email protected]'}
12:41:19.126 [info] Added resource: {kernel,'[email protected]'}
12:41:19.126 [info] Added resource: {kernel,'[email protected]'}
12:41:19.127 [info] Application spapi_router started on node '[email protected]'
  spr_ets_handler_eunit:707: update_host_names_test_...ok
  spr_ets_handler_eunit:708: update_host_names_test_...12:41:19.130 [notice] reload_world_list invoked
[0.004 s] ok
  spr_ets_handler_eunit:709: update_host_names_test_...ok
  spr_ets_handler_eunit:712: update_host_names_test_...12:41:19.142 [notice] reload_world_list invoked
ok
  spr_ets_handler_eunit:713: update_host_names_test_...[0.004 s] ok
  spr_ets_handler_eunit:714: update_host_names_test_...ok
  spr_ets_handler_eunit:715: update_host_names_test_...12:41:19.155 [notice] Updating host names: ['127.0.0.1'] -> ['127.0.0.1','240.0.0.0']
ok
  spr_ets_handler_eunit:721: update_host_names_test_...ok
  spr_ets_handler_eunit:722: update_host_names_test_...12:41:19.161 [notice] Updating host names: ['127.0.0.1','240.0.0.0'] -> ['240.0.0.0']
ok
  spr_ets_handler_eunit:730: update_host_names_test_...ok
  spr_ets_handler_eunit:731: update_host_names_test_...ok
12:41:19.169 [info] {nodedown: ''[email protected]''}
12:41:19.173 [info] {nodedown: ''[email protected]''}
12:41:19.175 [info] {nodedown: ''[email protected]''}
12:41:19.177 [info] {nodedown: ''[email protected]''}
12:41:19.178 [info] Application spapi_router exited with reason: stopped
12:41:19.358 [info] Added nodes: ['[email protected]']
12:41:19.358 [info] Added resource: {kernel,'[email protected]'}
12:41:19.359 [info] Application spapi_router started on node '[email protected]'
  spr_ets_handler_eunit:758: handle_info_test_...12:41:19.359 [error] Unhandled: update_host_names
ok
  spr_ets_handler_eunit:759: handle_info_test_...12:41:19.390 [warning] Triggering reload of workers list; nodes_down: []; nodes_missing_workers: [{'[email protected]',[compiler,runtime_tools]}]
ok
  spr_ets_handler_eunit:760: handle_info_test_...ok
  spr_ets_handler_eunit:761: handle_info_test_...ok
  spr_ets_handler_eunit:762: handle_info_test_...12:41:19.399 [info] {nodedown: ''[email protected]''}
12:41:19.402 [error] Unhandled: unhandled
ok
  spr_ets_handler_eunit:763: handle_info_test_...ok
  spr_ets_handler_eunit:764: handle_info_test_...ok
12:41:19.431 [info] {nodedown: ''[email protected]''}
12:41:19.432 [info] Application spapi_router exited with reason: stopped
  [done in 5.412 s]
module 'spapi_router_callback'
module 'spr_router_eunit'
  spr_router_eunit:6: get_call_type_test_...ok
  spr_router_eunit:7: get_call_type_test_...ok
  spr_router_eunit:8: get_call_type_test_...ok
  spr_router_eunit:9: get_call_type_test_...ok
  spr_router_eunit:10: get_call_type_test_...ok
12:41:19.498 [info] Application spapi_router started on node nonode@nohost
  spr_router_eunit:25: list_workers_test_...[0.001 s] ok
  spr_router_eunit:26: list_workers_test_...ok
  spr_router_eunit:27: list_workers_test_...ok
  spr_router_eunit:28: list_workers_test_...ok
12:41:19.510 [info] Application spapi_router exited with reason: stopped
12:41:19.701 [info] Added nodes: ['[email protected]','[email protected]']
12:41:19.701 [info] Added resource: {stdlib,'[email protected]'}
12:41:19.701 [info] Added resource: {stdlib,'[email protected]'}
12:41:19.701 [info] Added resource: {kernel,'[email protected]'}
12:41:19.702 [info] Added resource: {kernel,'[email protected]'}
12:41:19.702 [info] Application spapi_router started on node '[email protected]'
  spr_router_eunit:71: call_test_...ok
  spr_router_eunit:73: call_test_...ok
  spr_router_eunit:75: call_test_...12:41:19.711 [notice] No node available matching the given regexp: "none"
[0.001 s] ok
  spr_router_eunit:77: call_test_...ok
  spr_router_eunit:82: call_test_...[0.001 s] ok
  spr_router_eunit:87: call_test_...[0.001 s] ok
  spr_router_eunit:91: call_test_...ok
  spr_router_eunit:95: call_test_...[0.002 s] ok
12:41:19.730 [info] {nodedown: ''[email protected]''}
  spr_router_eunit:103: to_run_test_...12:41:19.731 [info] Application spapi_router exited with reason: stopped
ok
  spr_router_eunit:104: to_run_test_...ok
  spr_router_eunit:105: to_run_test_...ok
  spr_router_eunit:110: log_call_test_...ok
  spr_router_eunit:111: log_call_test_...ok
  spr_router_eunit:112: log_call_test_...ok
  spr_router_eunit:117: invoke_by_type_cast_test_...ok
  spr_router_eunit:119: invoke_by_type_cast_test_...ok
  spr_router_eunit:125: invoke_by_type_call_test_...ok
  spr_router_eunit:127: invoke_by_type_call_test_...[0.048 s] ok
  [done in 0.351 s]
module 'spr_util'
module 'spapi_router_callback_example'
module 'spr_util_eunit'
  spr_util_eunit:7: differences_test_...ok
  spr_util_eunit:8: differences_test_...ok
  spr_util_eunit:9: differences_test_...ok
  spr_util_eunit:10: differences_test_...ok
  spr_util_eunit:15: pmap_test_...ok
  spr_util_eunit:17: pmap_test_...[0.102 s] ok
  spr_util_eunit:26: pmap_test_...ok
  spr_util_eunit:28: pmap_test_...[0.018 s] ok
  spr_util_eunit:39: pmap_test_...[0.012 s] ok
  spr_util_eunit:49: pmap_test_...test/spr_util_eunit.erl:63:<0.132.0>: TimeSpent0=1003566, TimeSpent=1081382
[2.085 s] ok
  spr_util_eunit:68: pmap_test_...ok
  spr_util_eunit:79: pmap_test_...[1.004 s] ok
  spr_util_eunit:87: pmap_test_...ok
  spr_util_eunit:94: pmap_test_...ok
  [done in 3.263 s]
module 'spr_router'
=======================================================
  All 135 tests passed.
Cover analysis: /home/ec2-user/projects/spapi-router/.eunit/index.html
Coverdata export: /home/ec2-user/projects/spapi-router/.eunit/eunit.coverdata

Code Coverage:
spapi_router_callback         : not
spapi_router_callback_eunit   : 97%
spapi_router_callback_example :  0%
spapi_router_callback_noop    :  0%
spr_app                       : 60%
spr_ets_handler               : 95%
spr_ets_handler_eunit         : 98%
spr_router                    : 96%
spr_router_eunit              : 100
spr_sup                       : 100
spr_util                      : 77%
spr_util_eunit                : 100

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant