Test failure related to the tar flag "J" not being supported.
Command
The whole test suite rake integration:vagrant
is failing and I don't yet know how to pick that apart so I started to work with some bare commands I ran the following:
kitchen create default-centos-510
kitchen converge default-centos-510
Error
I, [2014-06-12T13:22:55.087192 #98722] INFO -- default-centos-510: ---- Begin output of /bin/tar xJf /tmp/kitchen/cache/foo_txz-3.txz --strip-components=1 ----
I, [2014-06-12T13:22:55.087212 #98722] INFO -- default-centos-510: STDOUT:
I, [2014-06-12T13:22:55.087227 #98722] INFO -- default-centos-510: STDERR: /bin/tar: invalid option -- J
I, [2014-06-12T13:22:55.087240 #98722] INFO -- default-centos-510: Try `tar --help' or `tar --usage' for more information.
I, [2014-06-12T13:22:55.087254 #98722] INFO -- default-centos-510: ---- End output of /bin/tar xJf /tmp/kitchen/cache/foo_txz-3.txz --strip-components=1 ----
I, [2014-06-12T13:22:55.087295 #98722] INFO -- default-centos-510: Ran /bin/tar xJf /tmp/kitchen/cache/foo_txz-3.txz --strip-components=1 returned 64
I, [2014-06-12T13:22:55.191689 #98722] INFO -- default-centos-510: [2014-06-12T20:22:54+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
E, [2014-06-12T13:22:55.301805 #98722] ERROR -- default-centos-510: Converge failed on instance <default-centos-510>.
E, [2014-06-12T13:22:55.301910 #98722] ERROR -- default-centos-510: ------Exception-------
E, [2014-06-12T13:22:55.301930 #98722] ERROR -- default-centos-510: Class: Kitchen::ActionFailed
E, [2014-06-12T13:22:55.301943 #98722] ERROR -- default-centos-510: Message: SSH exited (1) for command: [sudo -E chef-client -z --config /tmp/kitchen/client.rb --log_level info --json-attributes /tmp/kitchen/dna.json]
E, [2014-06-12T13:22:55.301955 #98722] ERROR -- default-centos-510: ---Nested Exception---
E, [2014-06-12T13:22:55.301966 #98722] ERROR -- default-centos-510: Class: Kitchen::SSHFailed
E, [2014-06-12T13:22:55.301976 #98722] ERROR -- default-centos-510: Message: SSH exited (1) for command: [sudo -E chef-client -z --config /tmp/kitchen/client.rb --log_level info --json-attributes /tmp/kitchen/dna.json]
E, [2014-06-12T13:22:55.301987 #98722] ERROR -- default-centos-510: ------Backtrace-------
E, [2014-06-12T13:22:55.301996 #98722] ERROR -- default-centos-510: /Users/franklinwebber/.rvm/gems/ruby-2.1.2/gems/test-kitchen-1.2.1/lib/kitchen/driver/ssh_base.rb:112:in `rescue in run_remote'
E, [2014-06-12T13:22:55.302007 #98722] ERROR -- default-centos-510: /Users/franklinwebber/.rvm/gems/ruby-2.1.2/gems/test-kitchen-1.2.1/lib/kitchen/driver/ssh_base.rb:108:in `run_remote'
E, [2014-06-12T13:22:55.302040 #98722] ERROR -- default-centos-510: /Users/franklinwebber/.rvm/gems/ruby-2.1.2/gems/test-kitchen-1.2.1/lib/kitchen/driver/ssh_base.rb:48:in `block in converge'
E, [2014-06-12T13:22:55.302051 #98722] ERROR -- default-centos-510: /Users/franklinwebber/.rvm/gems/ruby-2.1.2/gems/test-kitchen-1.2.1/lib/kitchen/ssh.rb:47:in `initialize'
E, [2014-06-12T13:22:55.302061 #98722] ERROR -- default-centos-510: /Users/franklinwebber/.rvm/gems/ruby-2.1.2/gems/test-kitchen-1.2.1/lib/kitchen/driver/ssh_base.rb:43:in `new'
E, [2014-06-12T13:22:55.302071 #98722] ERROR -- default-centos-510: /Users/franklinwebber/.rvm/gems/ruby-2.1.2/gems/test-kitchen-1.2.1/lib/kitchen/driver/ssh_base.rb:43:in `converge'
E, [2014-06-12T13:22:55.302081 #98722] ERROR -- default-centos-510: /Users/franklinwebber/.rvm/gems/ruby-2.1.2/gems/kitchen-vagrant-0.15.0/lib/kitchen/driver/vagrant.rb:75:in `converge'
E, [2014-06-12T13:22:55.302091 #98722] ERROR -- default-centos-510: /Users/franklinwebber/.rvm/gems/ruby-2.1.2/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:273:in `public_send'
E, [2014-06-12T13:22:55.302101 #98722] ERROR -- default-centos-510: /Users/franklinwebber/.rvm/gems/ruby-2.1.2/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:273:in `block in perform_action'
E, [2014-06-12T13:22:55.302110 #98722] ERROR -- default-centos-510: /Users/franklinwebber/.rvm/gems/ruby-2.1.2/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:308:in `call'
E, [2014-06-12T13:22:55.302120 #98722] ERROR -- default-centos-510: /Users/franklinwebber/.rvm/gems/ruby-2.1.2/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:308:in `synchronize_or_call'
E, [2014-06-12T13:22:55.302138 #98722] ERROR -- default-centos-510: /Users/franklinwebber/.rvm/gems/ruby-2.1.2/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:283:in `block in action'
E, [2014-06-12T13:22:55.302150 #98722] ERROR -- default-centos-510: /Users/franklinwebber/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/benchmark.rb:279:in `measure'
E, [2014-06-12T13:22:55.302160 #98722] ERROR -- default-centos-510: /Users/franklinwebber/.rvm/gems/ruby-2.1.2/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:282:in `action'
E, [2014-06-12T13:22:55.302170 #98722] ERROR -- default-centos-510: /Users/franklinwebber/.rvm/gems/ruby-2.1.2/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:273:in `perform_action'
E, [2014-06-12T13:22:55.302180 #98722] ERROR -- default-centos-510: /Users/franklinwebber/.rvm/gems/ruby-2.1.2/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:256:in `converge_action'
E, [2014-06-12T13:22:55.302190 #98722] ERROR -- default-centos-510: /Users/franklinwebber/.rvm/gems/ruby-2.1.2/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:246:in `block in transition_to'
E, [2014-06-12T13:22:55.302200 #98722] ERROR -- default-centos-510: /Users/franklinwebber/.rvm/gems/ruby-2.1.2/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:245:in `each'
E, [2014-06-12T13:22:55.302210 #98722] ERROR -- default-centos-510: /Users/franklinwebber/.rvm/gems/ruby-2.1.2/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:245:in `transition_to'
E, [2014-06-12T13:22:55.302235 #98722] ERROR -- default-centos-510: /Users/franklinwebber/.rvm/gems/ruby-2.1.2/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:119:in `converge'
E, [2014-06-12T13:22:55.302246 #98722] ERROR -- default-centos-510: /Users/franklinwebber/.rvm/gems/ruby-2.1.2/gems/test-kitchen-1.2.1/lib/kitchen/command.rb:109:in `public_send'
E, [2014-06-12T13:22:55.302255 #98722] ERROR -- default-centos-510: /Users/franklinwebber/.rvm/gems/ruby-2.1.2/gems/test-kitchen-1.2.1/lib/kitchen/command.rb:109:in `block (2 levels) in run_action'
E, [2014-06-12T13:22:55.302265 #98722] ERROR -- default-centos-510: ----------------------
Theory
Looking up I see that "TXZ" is a slackware archive format or at least that is what the article is saying its predominate use.
The issue is with the tar flag "J". Which it does not seem to have on CentOS. As someone not familiar with many of the tar flags I don't know when that was removed or if it is only not present on this platform.
CentOS 510 - FAILURE
I found that tar does NOT support the "J" flag.
I found that I CANNOT extract the contents of the example txz archive.
tar --version reports 1.15.1.
$ kitchen login default-centos-510
$ cd /tmp/kitchen/cookbooks/ark/files/default
$ tar xf foo.txz
CentOS 65 - FAILURE
I found that tar does support the "J" flag.
I found that I CANNOT extract the contents of the example txz archive without the "J" flag.
I found that I CANNOT extract the contents of the example txz archive WITH the "J" flag.
I found that I can extract the contents of the example txz archive WITH the "J" flag if I install xz-lzma-compat.
tar --version reports 1.23.
$ kitchen login default-centos-65
$ cd /tmp/kitchen/cookbooks/ark/files/default
$ tar xf foo.txz
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors
$ tar Jxf foo.txz
tar (child): xz: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
$ sudo yum install xz-lzma-compat
$ tar Jxf foo.txz
Fedora 19 - SUCCESS
I found that tar does support the "J" flag.
I found that I can extract the contents of the example txz archive without the "J" flag.
tar --version reports 1.26.
$ kitchen login default-fedora-19
$ cd /tmp/kitchen/cookbooks/ark/files/default
$ tar xf foo.txz
Ubuntu 1004 - SUCCESS
tar --version reports 1.22.
I found that tar does support the "J" flag.
I found that I CANNOT extract the contents of the example txz archive without the "J" flag.
$ kitchen login default-ubuntu-1004
$ cd /tmp/kitchen/cookbooks/ark/files/default
$ tar xf foo.txz
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors
$ tar Jxf foo.txz
Results
CentOS 510 cannot process txz archives unless we are able to deliver a higher tar (Need higher than 1.22) version to the platform. A failure with the appropriate message seems like the most unfortunate and straightforward move.
CentOS 65 needs 'xz-lzma-compat' installed.