バージョン選択

フォーラム

メニュー

オンライン状況

31 人のユーザが現在オンラインです。 (27 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 31
もっと...

サイト内検索

質問 > フロント機能 > ログアウトと退会で500エラーが発生

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
h_tanaka
投稿日時: 2024/1/17 11:59
対応状況: 解決済
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1646
ログアウトと退会で500エラーが発生
EC-CUBE 3.0.16

マイページの退会手続きページで「はい、退会します。」をクリックしたときに 500エラーが発生して退会手続きが完了しません。
また、ログアウトしようとしたときにも500エラーが発生します。こちらはTOPに戻るとログアウトが完了しています。
それ以外のページ遷移は注文含み問題ないです。

PHPエラーログを確認すると退会のときもログアウトのときもメモリー不足のエラーが出力されていました。
PHP Fatal error: Allowed memory size of 83886080 bytes exhausted (tried to allocate 72 bytes) in /src/Eccube/Log/Monolog/Processor/IntrospectionProcessor.php on line 44, referer: https://example.com/

EC-CUBEの front ログにはエラー等出力されていませんでした。

なぜか、開発環境では再現しないです。
■再現する環境
・本番環境(KAGOYA共用) memory_limit 80M
・検証環境(さくらVPS) memory_limit 2G

■再現しない環境
・開発環境(macOS) memory_limit 2G

プラグインの有効/無効状態は各環境で合わせています。
公式の脆弱性リストは検証と本番でのみ対応しています。

検証環境のメモリー上限が2Gなのに退会やログアウトでエラーになるのは、メモリー不足以前になにか原因がある気がしています。

原因または調査方法わかりますでしょうか?
tattsu
投稿日時: 2024/1/17 13:44
対応状況: −−−
長老
登録日: 2023/12/23
居住地:
投稿: 210
Re: ログアウトと退会で500エラーが発生
h_tanakaさん

確か3系のバージョンによっては、php7.3だとマイページでそのエラーになる部分があったように記憶しています。

確かライブラリがphp7.3対応していないと言った問題だったと思います。

見当違いでしたら申し訳ございません。


----------------
-------------------
EC-CUBEカスタマイズ・バージョンアップ・不具合修正 
気軽にご相談ください。ゴールドランクパートナー。

h_tanaka
投稿日時: 2024/1/17 14:13
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1646
Re: ログアウトと退会で500エラーが発生
tattsu さん

ご意見ありがとうございます。

PHPのバージョン確認しました。

■再現する
本番 PHP 5.6.34
検証 PHP 7.2.34

■再現しない
開発 PHP 7.3.33

試しに開発環境の PHP を 5.6.40 に設定してみましたが、再現しませんでした。

また、管理画面ホームにライブラリに関する警告は表示されていませんでした。
tattsu
投稿日時: 2024/1/17 16:31
対応状況: −−−
長老
登録日: 2023/12/23
居住地:
投稿: 210
Re: ログアウトと退会で500エラーが発生
h_tanakaさん

こちらと似ていると思ったのですが、ちょっと違うようですね..
(468さんが記事でおっしゃっているWAFの問題なのでしょうか)

https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=25728&forum=10&post_id=103172#forumpost103172

参考までそれぞれのPHPがCGI版かモジュール版か、お伺いしても良いでしょうか?
h_tanaka
投稿日時: 2024/1/17 16:52
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1646
Re: ログアウトと退会で500エラーが発生
tattsu さん

同じ検証環境サーバーに構築している他のEC-CUBE3系サイトでは同様の現象が発生しないようです。

確認したところ、いずれもモジュール版でした。

本番 モジュール版
検証 モジュール版
開発 モジュール版
h_tanaka
投稿日時: 2024/3/14 14:30
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1646
Re: ログアウトと退会で500エラーが発生
本件、まだ解決には至っておらず継続して調査中になります。
デバッグモードで試したところ、ログには何も出力されず、画面上で ERR_EMPTY_RESPONSE になりました。
h_tanaka
投稿日時: 2024/3/14 14:32
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1646
Re: ログアウトと退会で500エラーが発生
tattsu さん

本番環境はKAGOYA共用ですが、WAFはOFFになっていました。
h_tanaka
投稿日時: 2024/3/14 16:15
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1646
Re: ログアウトと退会で500エラーが発生
本件、自己解決しました。

影響のありそうなプラグインを1つずつ無効化していったところ、
Google Analytics Eコマース/User-ID対応プラグイン(3.0系) [提供:ETUNA]
https://www.ec-cube.net/products/detail.php?product_id=1117
を無効化することでエラーが発生しなくなりました。

その後、デバッグして確認したところ、フロントページのすべてのページのレスポンス時に呼ばれている次の処理の中で $this->app; を呼び出している箇所でエラーになっていることがわかりました。
ログアウト、退会のときに呼び出すとなぜか原因不明の 500エラーになるようです。

app/Plugin/GoogleAnalytics/event.yml

eccube.event.front.response:
    - [trackingCode, NORMAL]


app/Plugin/GoogleAnalytics/GoogleAnalyticsEvent.php

    public function trackingCode(FilterResponseEvent $event)
    {
      $app = $this->app;
      
      ...


上記コードを次のように修正することでエラーが発生しなくなりました。
app/Plugin/GoogleAnalytics/GoogleAnalyticsEvent.php

    public function trackingCode(FilterResponseEvent $event)
    {
      // 退会時はスキップ
      $request = $event->getRequest();
      $route = $request->attributes->get('_route');
      if ($route == 'logout' || $route == 'mypage_withdraw') {
          return;
      }

      $app = $this->app;
      
      ...


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,872名です
総投稿数は109,999件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1295
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.