Chefでがーっとインストールしていると,yumでyum-dump Locking Error!
というのがでる.
Chef::Exceptions::Package: Yum failed - #<Process::Status: pid 5261 exit 200> - returns: ["yum-dump Locking Error! Couldn't obtain an exclusive yum lock in 10 seconds. Giving up.\n"]
要はChefがyumを実行している時にタイムアウトしてしまうらしい.
タイムアウトに設定されている時間は,エラーログに書いてあるように10秒.
ちょっと,これは短いのでなんとか変更する方法はないかと,いろいろ探してたが情報があんまりなかった.
こういうissue(CHEF-3193)があって,
最終的にはattributeとかで設定出来るようにするべきだよねって話がされてた.
が,今(2013/11/06)の状態はConfirmed.
最終的には,
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/provider/package/yum-dump.py
に記述されている,
# Seconds to wait for exclusive access to yum
LOCK_TIMEOUT = 10
の値を30くらいに変更した.
追記(2015/12/17)
現在は設定値に timeout
を設定できるようになっているっぽい。
yum_package 'name' do allow_downgrade TrueClass, FalseClass arch String, Array flush_cache Array notifies # see description options String package_name String, Array # defaults to 'name' if not specified provider Chef::Provider::Package::Yum source String subscribes # see description timeout String, Integer version String, Array action Symbol # defaults to :install if not specified end