前提・実現したいこと
PHPのWebアプリケーション(Moodle 3.5.4)でコース作成操作等を実行中に、
PostgreSQLで以下のエラーメッセージが発生しました。
エラーは、同じ操作でも発生するときと発生しないときがあります。
pg_advisory_lock(勧告的ロック)でロックしているのは何が原因でしょうか?
または、原因はどのように調査すればよろしいでしょうか?
発生している問題・エラーメッセージ
cat /home/pgsql/data/pg_log/postgresql-Thu.log < 2019-05-16 10:15:34.057 JST >ERROR: ステートメントのタイムアウトによりステートメントをキャンセルしています < 2019-05-16 10:15:34.057 JST >ステートメント: SELECT pg_advisory_lock(197585) < 2019-05-16 10:16:12.378 JST >LOG: オープン中のトランザクションを持つクライアント接続に想定外のEOFがありました < 2019-05-16 10:39:32.035 JST >ERROR: ステートメントのタイムアウトによりステートメントをキャンセルしています < 2019-05-16 10:39:32.035 JST >ステートメント: SELECT pg_advisory_lock(198143) < 2019-05-16 10:39:35.112 JST >ERROR: ステートメントのタイムアウトによりステートメントをキャンセルしています < 2019-05-16 10:39:35.112 JST >ステートメント: SELECT pg_advisory_lock(198184) < 2019-05-16 10:39:35.898 JST >ERROR: ステートメントのタイムアウトによりステートメントをキャンセルしています < 2019-05-16 10:39:35.898 JST >ステートメント: SELECT pg_advisory_lock(198084) < 2019-05-16 10:39:41.267 JST >ERROR: ステートメントのタイムアウトによりステートメントをキャンセルしています < 2019-05-16 10:39:41.267 JST >ステートメント: SELECT pg_advisory_lock(198192) < 2019-05-16 10:39:57.360 JST >ERROR: ステートメントのタイムアウトによりステートメントをキャンセルしています < 2019-05-16 10:39:57.360 JST >ステートメント: SELECT pg_advisory_lock(198026) < 2019-05-16 10:39:57.634 JST >ERROR: ステートメントのタイムアウトによりステートメントをキャンセルしています < 2019-05-16 10:39:57.634 JST >ステートメント: SELECT pg_advisory_lock(198126) < 2019-05-16 10:39:58.642 JST >ERROR: ステートメントのタイムアウトによりステートメントをキャンセルしています < 2019-05-16 10:39:58.642 JST >ステートメント: SELECT pg_advisory_lock(198110) < 2019-05-16 10:39:58.644 JST >ERROR: ステートメントのタイムアウトによりステートメントをキャンセルしています
試したこと
DBのタイムアウトに関する設定は、以下のようにしています。
# show statement_timeout; statement_timeout ------------------- 0 (1 行) # show lock_timeout; lock_timeout -------------- 0 (1 行) # show deadlock_timeout; deadlock_timeout ------------------ 1min (1 行) # show max_connections; max_connections ----------------- 600 (1 行)
※deadlock_timeoutはデフォルトの1sを60sに変更
補足情報(FW/ツールのバージョンなど)
# psql --version psql (PostgreSQL) 9.5.4 # php --version PHP 7.2.14 (cli) (built: Jan 8 2019 14:05:15) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.14, Copyright (c) 1999-2018, by Zend Technologies
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。