Bug #30081
closedTypeError - Value (ActiveSupport::TimeWithZone) 'yyyy-mm-dd hh:mm:ss +0000' is not any of: (Time | NilClass)" error when triggering ansible job
Description
Description of problem:
When setting high concurrency level, such as 250+ and disabling the batch triggering, Ansible RunHostJob may get the following error:
---------------------------------------
1: Initialization error: RestClient::Exceptions::ReadTimeout - Timed out reading data from server
2: Failed to initialize: TypeError - Value (ActiveSupport::TimeWithZone) 'yyyy-mm-dd hh:mm:ss +0000' is not any of: (Time | NilClass).
----------------------------------------
This is caused by the connection timeout to the smart proxy dynflow core and then Dynflow was trying to retry the connection but failed with the above TypeError.
Steps to Reproduce:
1. Disable batch triggering
2. Run ansible jobs against 250 hosts or more without setting a concurrency level.
Additional info:
Stacktrace:
--
- "/opt/theforeman/tfm/root/usr/share/gems/gems/algebrick-0.7.3/lib/algebrick/type_check.rb:54:in
`error'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/algebrick-0.7.3/lib/algebrick/type_check.rb:26:in
`Type!'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/algebrick-0.7.3/lib/algebrick/product_constructors/abstract.rb:26:in
`block in initialize'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/algebrick-0.7.3/lib/algebrick/product_constructors/abstract.rb:26:in
`map'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/algebrick-0.7.3/lib/algebrick/product_constructors/abstract.rb:26:in
`initialize'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/algebrick-0.7.3/lib/algebrick/product_variant.rb:90:in
`new'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/algebrick-0.7.3/lib/algebrick/product_variant.rb:90:in
`new'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.1/lib/dynflow/world.rb:227:in
`plan_event'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.1/lib/dynflow/action/suspended.rb:13:in
`plan_event'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.1/lib/dynflow/clock.rb:121:in
`ping'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-0.17.5.2/app/lib/actions/proxy_action.rb:240:in
`block in handle_connection_exception'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.1/lib/dynflow/action.rb:460:in
`suspend'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-0.17.5.2/app/lib/actions/proxy_action.rb:239:in
`handle_connection_exception'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-0.17.5.2/app/lib/actions/proxy_action.rb:223:in
`rescue in with_connection_error_handling'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-0.17.5.2/app/lib/actions/proxy_action.rb:217:in
`with_connection_error_handling'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-0.17.5.2/app/lib/actions/proxy_action.rb:41:in
`run'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.1/lib/dynflow/action.rb:563:in
`block (3 levels) in execute_run'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.1/lib/dynflow/middleware/stack.rb:27:in
`pass'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.1/lib/dynflow/middleware.rb:19:in
`pass'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.1/lib/dynflow/middleware.rb:32:in
`run'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.1/lib/dynflow/middleware/stack.rb:23:in
`call'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.1/lib/dynflow/middleware/stack.rb:27:in
`pass'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.1/lib/dynflow/middleware.rb:19:in
`pass'"
- "/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-0.17.5.2/app/lib/actions/middleware/rails_executor_wrap.rb:14:in
`block in run'"