Expand definition of 'child exiting too fast'

The session_manager has always bailed if the browser exits too
much too fast. Until now, this has been 'more than once a second'.
To address some crashes that happen when the GPU process hangs,
this threshold is now '4 times in 60 seconds'.

The session manager exiting will cause the UI to bounce, which
causes X to be killed and restarted as well. This should address
some funkiness, though not all. We will also add some logic to
reboot in certain circumstances.

BUG=chromium:261784
TEST=unit tests, booted device and SIGKILL'd chrome 4 times in < 1 minutes. Checked logs to see that the session manager exited after the 4th time.

Change-Id: I3c9caa02628c43091872a703fea10e37ad4f6a1d
Reviewed-on: https://gerrit.chromium.org/gerrit/62660
Commit-Queue: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Zelidrag Hornung <zelidrag@chromium.org>
3 files changed
tree: 42526e765c10cbc2f53bcddb83aed8685b393200
  1. child_job.cc
  2. child_job.h
  3. child_job_unittest.cc
  4. common.mk
  5. cros-xauth.c
  6. dbus_glib_shim.cc
  7. dbus_glib_shim.h
  8. default_proxy
  9. device_local_account_policy_service.cc
  10. device_local_account_policy_service.h
  11. device_local_account_policy_service_unittest.cc
  12. device_policy_service.cc
  13. device_policy_service.h
  14. device_policy_service_unittest.cc
  15. file_checker.cc
  16. file_checker.h
  17. inherit-review-settings-ok
  18. key_generator.cc
  19. key_generator.h
  20. key_generator_unittest.cc
  21. keygen.cc
  22. keygen_worker.cc
  23. keygen_worker.h
  24. LICENSE
  25. liveness_checker.h
  26. liveness_checker_impl.cc
  27. liveness_checker_impl.h
  28. liveness_checker_impl_unittest.cc
  29. login.conf
  30. login_metrics.cc
  31. login_metrics.h
  32. login_metrics_unittest.cc
  33. logout.conf
  34. machine-info.conf
  35. Makefile
  36. matchers.h
  37. mock_child_job.h
  38. mock_child_process.cc
  39. mock_child_process.h
  40. mock_constructors.cc
  41. mock_device_policy_service.h
  42. mock_file_checker.h
  43. mock_key_generator.h
  44. mock_liveness_checker.h
  45. mock_metrics.h
  46. mock_mitigator.h
  47. mock_nss_util.cc
  48. mock_nss_util.h
  49. mock_policy_key.h
  50. mock_policy_service.h
  51. mock_policy_store.h
  52. mock_process_manager_service.cc
  53. mock_process_manager_service.h
  54. mock_server.key
  55. mock_server.pem
  56. mock_session_manager.h
  57. mock_system_utils.cc
  58. mock_system_utils.h
  59. mock_upstart_signal_emitter.h
  60. mock_user_policy_service_factory.h
  61. nss_util.cc
  62. nss_util.h
  63. nss_util_unittest.cc
  64. org.chromium.SessionManager.service
  65. owner_key_loss_mitigator.cc
  66. owner_key_loss_mitigator.h
  67. policy_key.cc
  68. policy_key.h
  69. policy_key_unittest.cc
  70. policy_service.cc
  71. policy_service.h
  72. policy_service_unittest.cc
  73. policy_store.cc
  74. policy_store.h
  75. policy_store_unittest.cc
  76. process_manager_service_interface.h
  77. recovery_ui.html
  78. regen_mitigator.cc
  79. regen_mitigator.h
  80. regen_mitigator_unittest.cc
  81. scoped_dbus_pending_call.cc
  82. scoped_dbus_pending_call.h
  83. session_manager.xml
  84. session_manager_impl.cc
  85. session_manager_impl.h
  86. session_manager_impl_unittest.cc
  87. session_manager_interface.h
  88. session_manager_main.cc
  89. session_manager_process_unittest.cc
  90. session_manager_service.cc
  91. session_manager_service.h
  92. session_manager_setup.sh
  93. session_manager_static_unittest.cc
  94. session_manager_testrunner.cc
  95. SessionManager.conf
  96. system_utils.cc
  97. system_utils.h
  98. system_utils_unittest.cc
  99. ui.conf
  100. upstart_signal_emitter.cc
  101. upstart_signal_emitter.h
  102. user_policy_service.cc
  103. user_policy_service.h
  104. user_policy_service_factory.cc
  105. user_policy_service_factory.h
  106. user_policy_service_unittest.cc
  107. WATCHLISTS
  108. xstart.sh