neillturner / kitchen-verifier-serverspec

A Test Kitchen Serverspec Verifer without having to transit the Busser layer
Other
39 stars 19 forks source link

JSON format not returned from rspec call due to SSH problems #40

Closed maunzCache closed 4 years ago

maunzCache commented 4 years ago

Environment

Ruby 2.5.1
kitchen-ansible (0.50.1)
kitchen-docker (2.10.0)
kitchen-inspec (1.3.2)
kitchen-verifier-serverspec (0.7.0)
test-kitchen (2.5.1)

Test Environment

Ruby 2.5.1/Ruby 2.5.8
bundler 2.1.4
diff-lcs 1.3
multi_json 1.14.1
net-ssh 3.2.0
net-scp 3.0.0
net-telnet 0.1.1
rspec-support 3.9.3
rspec-core 3.9.2
rspec-expectations 3.9.2
rspec-mocks 3.9.1
rspec 3.9.0
rspec-its 1.3.0
sfl 2.3
specinfra 2.82.16
serverspec 2.41.5

Error message

>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: 1 actions failed.
>>>>>>     Failed to complete #verify action: [SSH exited (1) for command: [            
            mkdir -p /tmp/kitchen
            cd /tmp/kitchen
            RSPEC_CMD=$(which rspec)
            echo "---> RSPEC_CMD variable is: ${RSPEC_CMD}"
             sudo -E -H  $RSPEC_CMD -c -f json --default-path  /tmp/kitchen  -P /tmp/verifier/suites/serverspec/*_spec.rb

Backtrace

D      ----------------------
D      ------Backtrace-------
D      /var/lib/gems/2.5.0/gems/test-kitchen-2.5.1/lib/kitchen/transport/ssh.rb:143:in `execute'
D      /var/lib/gems/2.5.0/gems/kitchen-verifier-serverspec-0.7.0/lib/kitchen/verifier/serverspec.rb:69:in `block in call'
D      /var/lib/gems/2.5.0/gems/test-kitchen-2.5.1/lib/kitchen/transport/base.rb:100:in `initialize'
D      /var/lib/gems/2.5.0/gems/test-kitchen-2.5.1/lib/kitchen/transport/ssh.rb:121:in `initialize'
D      /var/lib/gems/2.5.0/gems/test-kitchen-2.5.1/lib/kitchen/transport/ssh.rb:551:in `new'
D      /var/lib/gems/2.5.0/gems/test-kitchen-2.5.1/lib/kitchen/transport/ssh.rb:551:in `create_new_connection'
D      /var/lib/gems/2.5.0/gems/test-kitchen-2.5.1/lib/kitchen/transport/ssh.rb:99:in `connection'
D      /var/lib/gems/2.5.0/gems/kitchen-verifier-serverspec-0.7.0/lib/kitchen/verifier/serverspec.rb:62:in `call'
D      /var/lib/gems/2.5.0/gems/test-kitchen-2.5.1/lib/kitchen/instance.rb:459:in `block in verify_action'
D      /var/lib/gems/2.5.0/gems/test-kitchen-2.5.1/lib/kitchen/instance.rb:552:in `synchronize_or_call'
D      /var/lib/gems/2.5.0/gems/test-kitchen-2.5.1/lib/kitchen/instance.rb:514:in `block in action'
D      /usr/lib/ruby/2.5.0/benchmark.rb:293:in `measure'
D      /var/lib/gems/2.5.0/gems/test-kitchen-2.5.1/lib/kitchen/instance.rb:513:in `action'
D      /var/lib/gems/2.5.0/gems/test-kitchen-2.5.1/lib/kitchen/instance.rb:451:in `verify_action'
D      /var/lib/gems/2.5.0/gems/test-kitchen-2.5.1/lib/kitchen/instance.rb:382:in `block (2 levels) in transition_to'
D      /var/lib/gems/2.5.0/gems/test-kitchen-2.5.1/lib/kitchen/lifecycle_hooks.rb:45:in `run_with_hooks'
D      /var/lib/gems/2.5.0/gems/test-kitchen-2.5.1/lib/kitchen/instance.rb:381:in `block in transition_to'
D      /var/lib/gems/2.5.0/gems/test-kitchen-2.5.1/lib/kitchen/instance.rb:380:in `each'
D      /var/lib/gems/2.5.0/gems/test-kitchen-2.5.1/lib/kitchen/instance.rb:380:in `transition_to'
D      /var/lib/gems/2.5.0/gems/test-kitchen-2.5.1/lib/kitchen/instance.rb:162:in `verify'
D      /var/lib/gems/2.5.0/gems/test-kitchen-2.5.1/lib/kitchen/command.rb:198:in `public_send'
D      /var/lib/gems/2.5.0/gems/test-kitchen-2.5.1/lib/kitchen/command.rb:198:in `run_action_in_thread'
D      /var/lib/gems/2.5.0/gems/test-kitchen-2.5.1/lib/kitchen/command.rb:169:in `block (2 levels) in run_action'
D      ----End Backtrace-----

Story Our test automation system recently failed after upgrading from ruby 2.4.3 to ruby 2.5.1 (and now 2.5.8). When running the Verifier with format: json the kitchen verify call would never return any output. format: documentation seems to be fine. I cannot pinpoint the issue but the backtrace seems to suggest SSH problems.

maunzCache commented 4 years ago

We managed to find out that kitchen-docker was the culprit. A downgrade to 2.9.0 seemed to resolve the problem.