Prev / Next

2012-09-28 / munin-async を Solaris 11 上で動かしたい 2

昨日 [2012-09-27-1] の続き.

以下のように print をいれて,どこのファイルでひっかかるのか確認

sub _lock_write {
    my ($filename, $mode) = @_;
    print "$filename: $mode\n";


これで実行すると,以下のように
/var/lib/munin/spool/SPOOL-META を "r" で開いたときに
flock($fh, LOCK_EX) が失敗している.

$ sudo -u munin /usr/share/munin/munin-asyncd -v
/var/lib/munin/spool/SPOOL-META: r
Cannot lock tied file '/var/lib/munin/spool/SPOOL-META' - Bad file number at /usr/perl5/vendor_perl/5.12/Munin/Common/SyncDictFile.pm line 182.


なので,以下のようにして,SPOOL-META を開くときの mode を
"w+" に変えてしまう.

sub _lock_write {
    my ($filename, $mode) = @_;
    $mode = "w+" if $filename =~ /SPOOL-META/;
    print "$filename: $mode\n";


すると,以下のように,flock でひっかからなくなる.

$ sudo -u munin /usr/share/munin/munin-asyncd -v
/var/lib/munin/spool/SPOOL-META: w+
/var/lib/munin/spool/SPOOL-META.tmp: w+
/var/lib/munin/spool/SPOOL-META: w+
/var/lib/munin/spool/SPOOL-META.tmp: w+
/var/lib/munin/spool/SPOOL-META: w+
/var/lib/munin/spool/SPOOL-META.tmp: w+
[21634][main] Reading config from localhost:4949
[21634][plugin:cpu] asking for config
[21634][plugin:cpu] asking for data
[21634][plugin:df] asking for config


場当り的だけど,これで動くので,
とりあえず,しばらくはこれで使ってみる.

ちなみに,SPOOL-META は以下のようなファイル.

$ cat /var/lib/munin/spool/SPOOL-META
lastruntime:1348803319


Referrer (Inside):
[2013-08-17-1] Solaris 11 で Munin asyncd を使う
[2012-09-29-1] munin-async を Solaris 11 上で動かしたい 3
comments powered by Disqus