voxpupuli / puppet-elasticsearch

Elasticsearch Puppet module
Apache License 2.0
403 stars 478 forks source link

beaker-rspec failure for shield/user dependency tests #721

Closed runejuhl closed 7 years ago

runejuhl commented 8 years ago

Lightweight rspec tests fail with stack overflows and the following messages:

rspec ./spec/classes/000_elasticsearch_init_spec.rb[1:1:1:1] # elasticsearch on debian-6-x86_64 main class tests should compile into a catalogue without dependency cycles
rspec ./spec/defines/007_elasticsearch_shield_user_spec.rb:110 # elasticsearch::shield::user collector ordering when absent should contain Elasticsearch::Shield::User[elastic] that comes before Elasticsearch::Template[foo] and Elasticsearch::Plugin[shield]
rspec ./spec/defines/008_elasticsearch_shield_role_spec.rb:90 # elasticsearch::shield::role collector ordering when absent should contain Elasticsearch::Shield::Role[elastic_role] that comes before Elasticsearch::Template[foo], Elasticsearch::Plugin[shield] and Elasticsearch::Shield::User[elastic]

Output from make tests-rspec found here: spec-fail.txt

Tested against 0.14.0.

runejuhl commented 8 years ago

Acceptance tests using CentOS 6 amd64 (as shown in the contributer guide) fail as well, apparently due to a missing docker image:

$ DISTRO=centos-6-x64 make test-acceptance
BEAKER_PE_DIR=spec/fixtures/artifacts \
    BEAKER_set=centos-6-x64 \
    bundle exec rake beaker:acceptance
Fetching https://github.com/lmenezes/elasticsearch-kopf/archive/v2.1.1.zip...
Fetching https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.3.1.deb...
Fetching https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.1.0.deb...
Fetching https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.3.1.noarch.rpm...
Fetching https://github.com/lukas-vlcek/bigdesk/zipball/v2.4.0...
/usr/bin/ruby2.3 -I/home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/rspec-core-3.5.4/lib:/home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/rspec-support-3.5.0/lib /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/rspec-core-3.5.4/exe/rspec --pattern spec/acceptance/0\*_spec.rb
/home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/beaker-rspec-5.6.0/lib/beaker-rspec/helpers/serverspec.rb:43: warning: already initialized constant Module::VALID_OPTIONS_KEYS
/home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/specinfra-2.63.3/lib/specinfra/configuration.rb:4: warning: previous definition of VALID_OPTIONS_KEYS was here
Beaker::Hypervisor, found some docker boxes to create
Provisioning docker
provisioning centos-6-x64
/home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/docker-api-1.32.1/lib/docker/connection.rb:46:in `rescue in request': No such image: 1f4e3e2e3450b60d02445ff85818699e65f4eec00671b0a41bf60a0271a68997:latest (Docker::Error::NotFoundError)
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/docker-api-1.32.1/lib/docker/connection.rb:38:in `request'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/docker-api-1.32.1/lib/docker/connection.rb:65:in `block (2 levels) in <class:Connection>'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/docker-api-1.32.1/lib/docker/container.rb:323:in `create'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/beaker-2.35.0/lib/beaker/hypervisor/docker.rb:96:in `block in provision'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/beaker-2.35.0/lib/beaker/hypervisor/docker.rb:49:in `each'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/beaker-2.35.0/lib/beaker/hypervisor/docker.rb:49:in `provision'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/beaker-2.35.0/lib/beaker/hypervisor.rb:75:in `create'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/beaker-2.35.0/lib/beaker/network_manager.rb:67:in `block in provision'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/beaker-2.35.0/lib/beaker/network_manager.rb:66:in `each_key'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/beaker-2.35.0/lib/beaker/network_manager.rb:66:in `provision'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/beaker-rspec-5.6.0/lib/beaker-rspec/beaker_shim.rb:35:in `provision'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/beaker-rspec-5.6.0/lib/beaker-rspec/spec_helper.rb:46:in `block in <top (required)>'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/rspec-core-3.5.4/lib/rspec/core.rb:98:in `configure'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/beaker-rspec-5.6.0/lib/beaker-rspec/spec_helper.rb:5:in `<top (required)>'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/beaker-rspec-5.6.0/lib/beaker-rspec.rb:5:in `require'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/beaker-rspec-5.6.0/lib/beaker-rspec.rb:5:in `<module:BeakerRSpec>'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/beaker-rspec-5.6.0/lib/beaker-rspec.rb:1:in `<top (required)>'
    from /home/runejuhl/opt/puppet-elasticsearch/spec/spec_helper_acceptance.rb:1:in `require'
    from /home/runejuhl/opt/puppet-elasticsearch/spec/spec_helper_acceptance.rb:1:in `<top (required)>'
    from /home/runejuhl/opt/puppet-elasticsearch/spec/acceptance/002_class_spec.rb:1:in `require'
    from /home/runejuhl/opt/puppet-elasticsearch/spec/acceptance/002_class_spec.rb:1:in `<top (required)>'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1435:in `load'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1435:in `block in load_spec_files'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1433:in `each'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1433:in `load_spec_files'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:100:in `setup'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:86:in `run'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:71:in `run'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:45:in `invoke'
    from /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/rspec-core-3.5.4/exe/rspec:4:in `<main>'
/usr/bin/ruby2.3 -I/home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/rspec-core-3.5.4/lib:/home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/rspec-support-3.5.0/lib /home/runejuhl/opt/puppet-elasticsearch/.vendor/ruby/2.3.0/gems/rspec-core-3.5.4/exe/rspec --pattern spec/acceptance/0\*_spec.rb failed
Makefile:39: recipe for target 'test-acceptance' failed
make: *** [test-acceptance] Error 1
tylerjl commented 8 years ago

Thanks for bringing this up, @runejuhl. In regards to both issues:

  1. Failing acceptance test
    • Both Travis and the spot test I just did confirmed that this test still works - you may want to clear your cached Docker images to force re-pulling them, as Docker does a pretty poor job of managing its cache.
  2. Failing rspec tests
    • This is a strange issue that I've now reported upstream to rspec-puppet. Basically after a change to force correct ordering for some collected resources in init.pp, rspec-puppet gets stuck in some infinite recursion. Hopefully upstream takes a look so we can find the source of the issue to fix it. 💊
tylerjl commented 7 years ago

It looks like upstream isn't going to take a crack at the failing unit tests unfortunately, so I've disabled it for the foreseeable future.

tylerjl commented 7 years ago

This got picked up by upstream so these tests can be re-enabled upon the release of beaker-rspec 2.6.0.

tylerjl commented 7 years ago

Fixed in 5a9a1c7