phlipper / chef-monit

Chef cookbook for monit package
http://phlippers.net/chef-monit
MIT License
67 stars 69 forks source link

install-monit-binary gets STDERR: cp: cannot create regular file `/usr/bin/monit': Text file busy #60

Closed joelhandwell closed 9 years ago

joelhandwell commented 9 years ago

Hello, I got following error while running chef-client which includes install-monit-binary in runlist: This error appears on chef-client run after "first run" which is successful.
Looks like /usr/bin/monit is not available during command "cd /var/chef/cache && tar zxvf monit-5.10.tar.gz && cd monit-5.10 && cp bin/monit /usr/bin/monit" because monit service is running. Following is the error:

Recipe: monit::install_binary
   execute[install-monit-binary] action run

Error executing action `run` on resource 'execute[install-monit-binary]'

Mixlib::ShellOut::ShellCommandFailed

Expected process to exit with [0], but received '1'
---- Begin output of cd /var/chef/cache &&   tar zxvf monit-5.10.tar.gz &&   cd monit-5.10 &&   cp bin/monit /usr/bin/monit ----
STDOUT: monit-5.10/
monit-5.10/bin/
monit-5.10/bin/monit
monit-5.10/COPYING
monit-5.10/conf/
monit-5.10/conf/monitrc
monit-5.10/man/
monit-5.10/man/man1/
monit-5.10/man/man1/monit.1
STDERR: cp: cannot create regular file `/usr/bin/monit': Text file busy
---- End output of cd /var/chef/cache &&   tar zxvf monit-5.10.tar.gz &&   cd monit-5.10 &&   cp bin/monit /usr/bin/monit ----
Ran cd /var/chef/cache &&   tar zxvf monit-5.10.tar.gz &&   cd monit-5.10 &&   cp bin/monit /usr/bin/monit returned 1

Resource Declaration:

 In /var/chef/cache/cookbooks/monit/recipes/install_binary.rb

 10: execute "install-monit-binary" do
 11:   command "cd #{Chef::Config[:file_cache_path]} && \
 12:   tar zxvf monit-#{node["monit"]["binary"]["version"]}.tar.gz && \
 13:   cd monit-#{node["monit"]["binary"]["version"]} && \
 14:   cp bin/monit #{node["monit"]["binary"]["prefix"]}/bin/monit"
 15:   action :nothing
 16: end
 17:

Compiled Resource:

 Declared in /var/chef/cache/cookbooks/monit/recipes/install_binary.rb:10:in `from_file'

execute("install-monit-binary") do
  action [:nothing]
  retries 0
  retry_delay 2
  guard_interpreter :default
  command "cd /var/chef/cache &&   tar zxvf monit-5.10.tar.gz &&   cd monit-5.10 &&   cp bin/monit /usr/bin/monit"
  backup 5
  returns 0
  cookbook_name "monit"
  recipe_name "install_binary"
end

Recipe: monit::default
  * service[monit] action reload
    - reload service service[monit]

Running handlers:
[2014-12-11T14:09:31-05:00] ERROR: Running exception handlers
Running handlers complete

[2014-12-11T14:09:31-05:00] ERROR: Exception handlers complete
[2014-12-11T14:09:31-05:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
Chef Client failed. 136 resources updated in 497.362269175 seconds
[2014-12-11T14:09:31-05:00] ERROR: execute[install-monit-binary] (monit::install_binary line 10) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
---- Begin output of cd /var/chef/cache &&   tar zxvf monit-5.10.tar.gz &&   cd monit-5.10 &&   cp bin/monit /usr/bin/monit ----
STDOUT: monit-5.10/
monit-5.10/bin/
monit-5.10/bin/monit
monit-5.10/COPYING
monit-5.10/conf/
monit-5.10/conf/monitrc
monit-5.10/man/
monit-5.10/man/man1/
monit-5.10/man/man1/monit.1
STDERR: cp: cannot create regular file `/usr/bin/monit': Text file busy
---- End output of cd /var/chef/cache &&   tar zxvf monit-5.10.tar.gz &&   cd monit-5.10 &&   cp bin/monit /usr/bin/monit ----
Ran cd /var/chef/cache &&   tar zxvf monit-5.10.tar.gz &&   cd monit-5.10 &&   cp bin/monit /usr/bin/monit returned 1
[2014-12-11T14:09:32-05:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
ocxo commented 9 years ago

Also seeing this issue when trying to upgrade (see #61)

phlipper commented 9 years ago

This is resolved via #71

iiro commented 8 years ago

Excellent.

@phlipper any releases coming at some point...?