MilkyStep Official Community

メルマガ・ステップメール配信ソフトMilkyStep利用者のコミュニティです。

【Ver2.36】バージョンアップ後に Software error(Experimental push on scalar)・Internal Server Error が発生 → 原因と復旧手順の共有

いつもお世話になっております。
Ver2.35 → Ver2.36 へのオンラインバージョンアップ後に複数の不具合が発生しました。
最終的に自力で復旧できましたので、開発元様への報告と、同じ症状の方の参考として共有いたします。

■環境
・サーバー:コアサーバー(CORE-Aプラン)
・Perl:5.24以降(エラー内容からの判断です。正確なバージョンは未確認)
・作業:Ver2.35 → Ver2.36 オンラインバージョンアップ(2026年10月15日)

■症状1:管理画面(index.cgi)が Software error になる
【エラー内容】
Experimental push on scalar is now forbidden at ./lib/show.pl line 1675, near “$tmp_order)”
(line 1897 / 2808 / 3115 / 3333 も同様)
Compilation failed in require at index.cgi line 24.

【原因】
lib/show.pl の5か所にある
push($info[$i], $tmp_switch, $tmp_order);
が、Perl 5.24 で廃止された書き方(スカラーへの push)のため、読み込み時にエラーになっていました。
(今回追加された「読者情報項目の表示順」の処理部分です)

【暫定対処】
5か所を
push(@{$info[$i]}, $tmp_switch, $tmp_order);
に書き換えたところ、管理画面が表示されるようになりました。

■症状2:「読者リストの編集」で Table ‘(DB名).ms_dispfree’ doesn’t exist
【原因】
症状1のエラーでバージョンアップが途中で止まり、データベースの再構築が行われず、新しいテーブルが作成されていませんでした。

【対処】
「共通設定」→「データベースの再構築」を実行し、ms_dispfixed と ms_dispfree が作成されたことを phpMyAdmin で確認しました。

■症状3:再構築画面が「データベースを再構築中…」のまま終わらない/読者CSV出力が「出力中」のまま終わらない/登録フォーム(form_if.cgi)が Internal Server Error
【原因】
ブラウザの開発者ツールで確認したところ、rebuild_db.cgi?mode=check_progress が毎回 500 エラーになっていました。
FTPで確認すると、バージョンアップで更新された CGI ファイル(action.cgi、cs.cgi、form_if.cgi、rebuild_db.cgi など)のパーミッションが 0666(実行権限なし)になっていました。index.cgi は正常でした。
推測ですが、症状1でバージョンアップが途中で止まったため、パーミッションを設定する処理が実行されなかったのではないかと思います。

【対処】
config.cgi と install.cgi を除く各 CGI ファイルのパーミッションを index.cgi と同じ値に変更したところ、フォーム・CSV出力ともに復旧しました。

■開発元様へのお願い

  1. lib/show.pl の該当5か所について、Perl 5.24 以降に対応した正式な修正版の公開をお願いいたします。
  2. バージョンアップが途中でエラー終了した場合に、CGI のパーミッションが 0666 のまま残らないよう、ご検討いただけますと幸いです。
  3. 参考情報です。2025年2月2日の投稿「バージョンアップしたら『データベースを再構築中・・・』が完了しない」(コアサーバーV2)も、同じ原因(CGI のパーミッション)の可能性があるかもしれません。

■補足
・show.pl の書き換えは、自分の環境を復旧させるための暫定対応です。正式な修正版が公開されましたら差し替える予定です。
・同じ症状でお困りの方の参考になれば幸いです。

以上、よろしくお願いいたします。

木, 10月 15 2026 » バグの報告, バージョンアップ関連

Login