perl今日は、perlのParallel::Prefork(Parallel/Prefork.pm)で出たエラーについてメモ。結論からいうと、今回のパターンは、Parallel::Preforkのバージョンと組み方の問題でした。(※あくまでエラーメッセージの条件説明じゃなく、こんなパターンで出る場合があるよという感じで見てください)では、簡単なテストスクリプトを書いてみます。42.みたいなエラーが表示されます。})」の形でコードを実装してしまっている為です。何も処理されずにstartだけしてwhile分がまわります。ここで問題なのは、Parallel::Prefoxkを正常終了するには、$pm->finishしないといけないという事。この場合、$pm->start(sub{});で渡した内容が宙に浮きます。finishが走る要素がなくなります。:}0.10以上のParallel::Preforkを利用している場合には、上記の$pm->start(sub{})の中がParallel::Prefork側の$cbに入り、$cb->();実行後に、$self->finish();されているので、問題ない。"$FindBin::Bin/Parallel-Prefork-0.13/lib/";に変更したら、正常に動作しました。通常はcpanmとかでParallel::Preforkを更新すればいいだけですね。現時点の最新が、0.13なので、それにしてますが、多分Changesから見ると0.10以降なら何でも動くはず。$pm->finish;}まあ、そもそもが、Parallel::Preforkの0.10以上を利用していたシステムを0.10未満のサーバに移植した(古いサーバに移設とかあまり無いですよね)とかしないと発生しないので、この現象を調べる事になる人は、ほとんどいないと思いますけど。[Memo]wordpressで「現在メンテナンス中のため、しばらくの間ご利用いただけません。wordpress久しぶりのブログ更新が、比較的どうでもいいネタで、かつwordpressなんで、少し微妙ではありますが、メモ程度に。wordpressの更新(いわゆるバージョンアップ)をしてみたら、ブログページも、管理ページも以下のエラーが表示されて、何もできなくなったというお話です。現在メンテナンス中のため、しばらくの間ご利用いただけません。不安だったら、「.maintenance_org」など適当な名前にリネーム(変更)したら表示されます。以下のようにメンテナンスにロックファイルが作成されます。「index.php」で「wp-blog-header.php」をrequire。「wp-blog-header.php」で「wp-load.php」をrequire。「wp-load.php」で、「wp-config.php」が存在すればrequire。「wp-config.php」で、「wp-settings.php」をrequire。「wp-settings.php」で、「wp_maintenance関数」を呼び出し。「.maintenance」ファイルがあり、かつファイル内に記載されているepoch値(エポック値)から600秒(10分)以内の場合には、「wp-content/maintenance.php」があれば、それを表示。)」が「wp-content/languages/ja.po」に基づいて「現在メンテナンス中のため、しばらくの間ご利用いただけません。“現在メンテナンス中のため、しばらくの間ご利用いただけません。‘/wp-load.php’);されているので、結果、ブログページの3番以降と同じフローにのります。「wp-content/maintenance.php」という名前のファイルを作って、表示させればいいです。“メンテナンス中です。./wp-content/maintenance.php簡単にメンテナンスのテストするなら、コマンドラインから以下をたたいて今のepoch値でロックファイルを作ります。.maintenanceということで、エラーがでたので、久しぶりにphpのコードを読んで、中身を追って、どこにでもありそうな処理フローの解説をするという誰得っぽい記事を書いてみました。久しぶりの更新なのに。blameを今更知った。