XOOPS のモジュールのブロック定義の開始は 0 ではなく 1なのは、仕様かバグか?
XOOPS のモジュールを作った。
Block を下記のように一つだけ追加していた。
$modversion['blocks'] = array(
array(
'file' => 'block.php',
'name' => _NAME,
'description' => _DESCRIPTION,
'show_func' => 'block_show',
'template' => 'block.html',
),);
インストールも実行もうまくいっていた。
しかし、XOOPSのモジュール管理で、該当のモジュールのアップデートを行うと、ブロックが消えてしまう。
XOOPS本体のソースを追ったところ、アップデート後にも利用されるブロックかのチェックで、ブロックリストのインデックスを1からチェックしている。
具体的には、xoops\modules\system\admin\modulesadmin\main.php の 340行目付近
$blocks = $module->getInfo('blocks');
...
$count = count($blocks);
...
for ($i = 1; $i <= $count; $i++) {
なので、インデックス0で定義されているモジュールはアップデート後利用されないと判定され、ブロックの設定がXOOPSのデータベースから消されてしまう。
他の多くのXOOPSのモジュールを調べたところ、ブロックの定義は、0からではなく、1から始めている。なので、下記に変更したところ、アップデートでも問題は発生しなくなった。
$modversion['blocks'][1]['file'] = 'block.php';
$modversion['blocks'][1]['name'] = _NAME;
$modversion['blocks'][1]['description'] = _DESCRIPTION;
$modversion['blocks'][1]['show_func'] = 'block_show';
$modversion['blocks'][1]['template'] = 'block.html';
これは、XOOPSのモジュール作成時の作法(仕様)なのだろうか?
個人的にはXOOPS本体のバグだと思う。
遠隔地のReadyNAS間のレプリケーション速度について問題発生
遠隔地のReadyNAS間のレプリケーション速度について問題発生
要は、ある時間帯に、インターネットの接続の速度が低下している現象
いろいろ調べたところ、結果、光電話のルータ PR-200NE の節電設定がなされていて、ある特定の時間帯に、ether が10M になってたため、それ以上の速度が出なかった。
●PR-200NE機能詳細ガイド
http://web116.jp/shop/hikari_r/pr_200ne/pr_200ne_03.html
PR200NE_detail1212/機能詳細ガイド/guide/4-w/8w_m7.html
節電機能動作開始時は、有線LANのリンク速度が10Mbpsに変更されるため通信速度が低下したり、通信が切断されたりする場合があります。また、節電機能動作終了時も有線LANのリンク速度が変更されるため、通信が切断される場合があります。
節電設定で、CPU速度とかは変わりそうだが、有線LANの速度も変わるのは想定外だった。
気づいたのは、転送速度を見ていて、ある時間帯は、常に900kb/s あたりをうろうろ(変動少ない)しているが、ある時間帯外は、変動が大きく500kb/s ~ 4Mb/s などだったため、どこかの装置の速度規制を疑った。
ReadyNAS を使った VMWare ESXi の VMイメージのバックアップ環境設定にはまった。
NAS を利用しローカルの ESXi の VMイメージをバックアップすることになった
NAS: NETGEAR ReadyNAS 102 *2 (のちに ローカル側 ReadyNAS 314 / リモート側 ReadyNAS 102に変更)
・ローカル側ReadyNAS に iSCSI 領域を作り、VMイメージを配置。ESXi で利用する設定
=> 何事もなく完了
・リモート側ReadyNAS 設置
=> 何事もなく完了
=> できない(★問題1)
・NFS領域もしくは、SMB領域のレプリケーション設定は可能
=> 問題なく完了
・ESXi でローカルHDDからReadyNAS(102)のNFS領域へVMイメージコピー
=>ReadyNAS(102)が停止(★問題2)
=>iSCSI領域上のVMのHDDが不整合になり、長時間の全システム停止(OSの破損等が生じ修復に時間がかかる)
・ReadyNAS(102)のNFS領域へのVMイメージコピーが原因とは思わず、環境修復後再度行う。
=>ReadyNAS(102)が2度目の停止
=>再度長時間の全システム停止
・ReadyNAS 102 のスペックが原因なのではとのことで、ReadyNAS 314を追加購入
・ESXi でローカルHDDからReadyNAS(314)のNFS領域へVMイメージコピー
=>無事成功
・しかし ESXi から NFS 領域へのコピーが遅い(★問題3)
●ローカルHDD 20.8 MB/s
●iSCSI 15.6 MB/s
●NFS(sync MTU 1500) 7.4 MB/s
・MTUを 1500 -> 9000 に変更(NAS もスイッチも対応していたので)
●NFS(sync MTU 9000) 8.1 MB/s
=>さほどかわらず
●NFS(async MTU 1500) 39.2 MB/s
●NFS(async MTU 9000) 39.6 MB/s
・速度向上!
(参考
NETGEAR Support | Answer | How do disable NFS Sync mode in ReadyNAS OS 6, to improve NFS performance )
・async MTU 1500 で運用中
fetchmail: Server certificate verification error: certificate has expired
2014-01-28 21:00:00 JST 以降
fetchmail: Server certificate verification error: certificate has expired
とエラー
●以下コマンドで確認したが、サーバのpop3d の証明書の有効期限は切れていない。
openssl x509 -in file.crt -noout -dates
openssl x509 -inform pem -in file.pem -text
●以下コマンドで確認すると、通信時に、証明書の有効期限が切れてると表示
openssl s_client -connect example.com:995 -showcerts
CONNECTED(00000003)
depth=2 /C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
verify error:num=10:certificate has expired
notAfter=Jan 28 12:00:00 2014 GMT
verify return:0
---
Certificate chain
0 s:/C=JP/OU=Domain Control Validated/CN=example.com
i:/C=BE/O=GlobalSign nv-sa/CN=GlobalSign Domain Validation CA - G2
-----BEGIN CERTIFICATE-----
ん?どうやら Root CA の有効期限が切れてる?
サーバではなく、クライアント側らしい。
おそらく、下記にあてはまった。
https://access.redhat.com/site/solutions/702843
確認したところ、
クライアントOS: CentOS5
openssl-0.9.8e-26.el5_9.1
だった。
●対処
/etc/pki/tls/certs/ca-bundle.crt を CentOS6 の同ファイルに入れ替えた。
(上記対処が正しいかは自信なし。)
SPF include 参照のループではまる
●問題詳細
SPF include 参照のループをしているホストからのメールの処理で、無限ループが発生・メモリ枯渇・メールサーバが落ちる
「example.com txt "v=spf1 ip4:XXX.XXX.XXX.XXX include:example.com ~all"」のような設定がされたDNSからのメールがあった。
●解決法
無限ループしてしまっている自己作成メール処理プログラム(PMilter を使った、milter)で、SPF include 参照のループしている場合でも、無限ループにならないように修正
●経緯
2013年12月7日(土)メールサーバ停止 長期稼働だったので単純にリブート対処
2013年12月14日(土)メールサーバ停止 リブート対処・原因究明開始(連続で土曜日だったので、再度水曜にリブートを行う)
2013年12月21日(土)メールサーバ停止 リブート対処・稼働時間などが原因ではないと判明・土曜の同じ時間帯での停止のため、日付関係を調査開始
2013年12月28日(土)メールサーバ停止 年末のため30日まで対処できず。
2014年1月4日(土)メールサーバ停止 年始のため、調査できず。しかし、日付関係ではなく、メモリ関係だと判明。メモリ・プロセス監視開始
2014年1月11日(土)メールサーバ停止 原因プロセスほぼ確定。しかし曜日が関連していると考えていたため理由不明。
2014年1月18日(土)メールサーバ停止 偶然問題発生の瞬間を見ていたため、原因プロセス確定。到着メールが原因と判明。
2014年1月19日(日)到着メールの SPF 設定が参照ループしていることが判明。自己作成メール処理プログラム(PMilter を使った、milter)修正