トップページ > 記事閲覧
【トラブル】更新でメモリ不足のエラー
投稿日 : 2018/03/30(Fri) 21:06
投稿者 tomzo
参照先 http://haikforum.qhmtips.com
久しぶりにあるサイトを更新したら、以下のエラーが出ました。

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 26912 bytes) in /home/users/0/main.jp-qhm/web/サブドメイン名/lib/file.php on line 38

そのページを表示させてみると、ページは更新されています。
更新ボタンを押してから20秒くらい反応がなく、その後エラーになります。

QHMの時代に、このエラーが出て何かしたような気がしますが、忘れてしまいました。
誰かこれについて知っている人いませんか?


次に
サーバがPHP 5.1 だったので、PHP7.1に変更して、同じサイトを更新したら、今度は 

このページは動作していません
サブドメイン.qhmtips.com では現在このリクエストを処理できません。
HTTP ERROR 500

が出てしまい、ますます悪くなってしまいましたが、やはり画面は更新されています。
プレビューは正常にできます。
どうしたもんでしょう。


サーバ:
・ロリポップ PHP 7.1 (CGI版) WAFは無効
・haik 7.1.1 (テーマ:haik_seed)

クライアント:
・Windows 10 Internet Explorer 11, Firefox (最新), Chrome (最新)
Re: 【トラブル】更新でメモリ不足のエラー
投稿日 : 2018/04/04(Wed) 13:12
投稿者 Yujiro
参照先
tomozoさん

>ページ名が長く、「'」や「"」を利用し、QHMが正常に動かない場合、「オフ」にして下さい

これはHAIKになってからの表示かも知れません。まあ「'」や「"」はシステムが使っていそうで
ダメなのはわかりますが。

とりあえず、更新の動作がおかしいときは自動リンクのキャンセルで対応は頭に入れて
おいて良さそうですね。
Re: 【トラブル】更新でメモリ不足のエラー
投稿日 : 2018/04/04(Wed) 12:59
投稿者 tomzo (管理者)
参照先
Yujiroさん

設定画面の 自動リンク に以下の文面があります。

ページ名が長く、「'」や「"」を利用し、QHMが正常に動かない場合、「オフ」にして下さい

以前からこんなの書いてありましたか?
きっと、やはり何か問題をかかえているのでしょう。
Re: 【トラブル】更新でメモリ不足のエラー
投稿日 : 2018/04/04(Wed) 10:26
投稿者 Yujiro
参照先
ところで、なぜ自動リンクが更新の邪魔をすることになるのでしょう?
問題ないときは問題ないのに・・・

■追記の自問自答

自動リンクがONだと、その処理をするためにメモリーを食う。
よってエラーが出やすい。

となると、そのページは自動リンクを使うにはそもそも無理がある・・?
Re: 【トラブル】更新でメモリ不足のエラー
投稿日 : 2018/04/04(Wed) 04:23
投稿者 tomzo
参照先 http://haikforum.qhmtips.com
stage2さん

できました。
自動リンクを OFFにしたら問題解決しました。

ありがとうございます。

今まで、この自動リンクの設定をさわったことがなかったので
気にもしていませんでした。
以前(QHMのとき)は、自動リンクはデフォルトでONだったと思います。
HAIKではデフォルトがOFFになったように記憶しています。
Re: 【トラブル】更新でメモリ不足のエラー
投稿日 : 2018/04/03(Tue) 23:44
投稿者 stage2
参照先
ダメでしたか。。
自動リンクは切っていますか?
設定から無効にするか、↓を買いてみてください。
NOAUTOLINK:


どうしてもダメならエラーメッセージの内容的にPHPのメモリ上限を150MBくらいにしたら直りそうです。
php.ini で設定できますよ。
Re: 【トラブル】更新でメモリ不足のエラー
投稿日 : 2018/04/03(Tue) 21:38
投稿者 tomzo
参照先 http://haikforum.qhmtips.com
stage2さん

バックアップを削除しても変化なしです。
#audio, #videoが関係するかと思っていましたが、
全部コメントにしても変わらず、エラーになります。
たぶん、1回エラーになるとずーっとエラーになりやすいのかも。

う〜ん。困った。
エラーになるけど一応更新されるので、とりあえずこのままでも
影響はないですが、気持ち悪いし何とかしたいですね。
Re: 【トラブル】更新でメモリ不足のエラー
投稿日 : 2018/04/03(Tue) 12:05
投稿者 stage2
参照先
補足です。
ファイルを消さなくても、ログインした後に「このページの」「バックアップ」を表示して全消去すればOKです。
Re: 【トラブル】更新でメモリ不足のエラー
投稿日 : 2018/04/03(Tue) 00:25
投稿者 stage2
参照先
tomzo さん

> backup\xxxxx.gz バックアップ

これです。
昔の状態に戻したい、とかでなければ消しても問題ないはずです。

今までの変更履歴がすべて残っているため、古いページではそれの読み書きでメモリを食ってしまうのでは?と推測しています。
Re: 【トラブル】更新でメモリ不足のエラー
投稿日 : 2018/04/01(Sun) 01:47
投稿者 tomzo
参照先 http://haikforum.qhmtips.com
stage2さん

対象ページを更新すると、以下のファイルが更新されます。
これらのうちどれを消せばよいですか?


cache\xxxxxx.rel   更新したページ名が入ったファイル?
cache\recent.dat   各ページのキャッシュ情報?
cache\qhm_lastmod.dat 最終更新日時
cache\autolink.dat  自動リンク情報

backup\xxxxx.gz バックアップ

wiki\xxxxx.txt ページデータ ★これは消さない

diff\xxxxx.txt  差分データ


怪しいのが cache\xxxxxx.rel  です。
更新の必要がないファイル名が入っているのがありました。

また、diff\xxxxx.txt もちょっと違うのではないかと
思うような内容でした。

実験するときは、全部バックアップを取ってからやります。
Re: 【トラブル】更新でメモリ不足のエラー
投稿日 : 2018/03/31(Sat) 21:43
投稿者 stage2
参照先
ページのバックアップデータを全削除してみてはどうですか?
エラーメッセージを読むとメモリ不足ですし、同ソースの新規ページが問題無いのであれば、自動リンクやバックアップデータ生成などの更新に伴う処理が原因の可能性が大です。
私も昔から更新し続けているページで同様のエラーが出るようになったことがあるのですが、この方法で切り抜けました^^;
Re: 【トラブル】更新でメモリ不足のエラー
投稿日 : 2018/03/31(Sat) 13:00
投稿者 Yujiro
参照先
>実験として、エラーが発生するページと同じものを、新規ページで作成すると正常に作成でき、更新もできました。

これ、稀に起こりますよね。

私の場合#audio や#video を多量に配置したわけでなく、ごく普通のページがこれに
ハマった経験あり。やむなく、元のトラブルページをトラブルのないページで上書き
して逃げたことあり。
Re: 【トラブル】更新でメモリ不足のエラー
投稿日 : 2018/03/31(Sat) 10:59
投稿者 tomzo
参照先 http://haikforum.qhmtips.com
《続き》

ちなみに、エラーとなっているソース

--------------------------
lib\file.php の一部


// Get source(wiki text) data of the page
function get_source($page = NULL, $lock = TRUE, $join = FALSE)
{
$result = $join ? '' : array();

if (is_page($page)) {
$path = get_filename($page);

if ($lock) {
$fp = @fopen($path, 'r');
if ($fp == FALSE) return $result;
flock($fp, LOCK_SH);
}

if ($join) {
// Returns a value
$result = str_replace("\r", '', fread($fp, filesize($path))); ★ここでエラー★
} else {
// Returns an array
// Removing line-feeds: Because file() doesn't remove them.
$result = str_replace("\r", '', file($path));
}

if ($lock) {
flock($fp, LOCK_UN);
@fclose($fp);
}
}

return $result;
}
--------------------------
Re: 【トラブル】更新でメモリ不足のエラー
投稿日 : 2018/03/31(Sat) 10:57
投稿者 tomzo
参照先 http://haikforum.qhmtips.com
Yujiroさん

サーバ自体のトラブルではなさそうです。

全部のページがエラーになるのではなく、#audio, #video の
プラグインを使用したページがエラーになるみたいです。

#audio 1ページ内に16個
#video 1ページ内に4個

1ページ内にそのプラグインを複数使っているので、ページを分割したら出なくなるのかもしれません。
でも、分割したくないのでなんとかならないものかと思っています。


エラーは HTTP ERROR 500 です。

実験として、エラーが発生するページと同じものを、新規ページで作成すると正常に作成でき、更新もできました。
同じようなページを作成すると、今度はエラーになったりします。
とても不安定です。

困りました

≪続く≫
Re: 【トラブル】更新でメモリ不足のエラー
投稿日 : 2018/03/30(Fri) 22:33
投稿者 Yujiro
参照先
tomozo さん

ずっと同じ調子でしょうか? (もしかしたら治っていないでしょうか?)

サーバーそれ自体が何かトラブルを起こしていて、ローカルのユーザーには手も足も出ない
感じがあります。

(ごく稀に、編集実行でタイムアウトしてしまうページがあるにはあると思えます。原因不明ですが。)

ロリポップのコレあたり関係ないっすよねえ。
https://ensmall.net/p/qhmpro/index.php?LolipopFTPAccess

- WEB PATIO -