2009年8月25日

[postfix-jp: 3558] Re:「Temporary lookup failure」について

お世話になっております。
はぎわらです。

中満様、ご返答ありがとうございます。

なるほど、ルックアップテーブル参照時に起きているということですね。
main.cfを確認したところ、


virtual_alias_maps = pgsql:/etc/postfix/pgsql_virtual_alias_maps.cf,
hash:/usr/local/mailman/data/virtual-mailman
virtual_alias_domains = $virtual_alias_maps
virtual_mailbox_domains = pgsql:/etc/postfix/pgsql_virtual_domains_maps.
cf
virtual_mailbox_maps = pgsql:/etc/postfix/pgsql_virtual_mailbox_maps.cf
virtual_mailbox_limit_maps = pgsql:/etc/postfix/pgsql_virtual_mailbox_
limit_maps.cf


という感じで、必要な物はほとんどPostgreSQLにアクセスさせるように
設定しております。

ご指摘の通り、毎度失敗になっているわけではないので、PostgreSQL側で
接続が出来ない状態になっている可能性もあり得ますね。

ログ等も確認させて頂きましたところ、
authdaemond: FATAL: sorry, too many clients already.
と出ていました。

明らかに、DB接続のコネクション数がオーバーしているのが原因だと思われます。

DB側でセッションの待ち受け数をもう少し増やす方向で調整をしたいと
思います。

大変参考になりました。
ありがとうございました。

Hideo NAKAMITSU <nomo@xxxxx>さん:
> 中満です。
>
> On Tue, 25 Aug 2009 10:45:16 +0900
> linker@xxxxx wrote:
>
> > Postfix 2.6.1をRedhat Enterprise Linux 5.3環境で利用しております。
> > VirtualDomain対応として、PostgreSQL8.3.7とTrendMicro IMSS 7.0を
> > 併用して利用しております。(同一サーバ内にて)
> > SMTP送信は、SMTP認証を設定しており、
> > cyrus-sasl-2.1.23,courier-authlib-0.62.2を利用しております。
> >
> > 稼働当初は順調だったのですが、最近になって、一部のユーザからメールを
> > 送る際に、まれに「Temporary lookup failure」と出て、メールソフトから
> > メールが送れないときがあるという話があがってきました。
> >
> > 個人でも分かる範囲で調査をしたのですが、「Temporary lookup failure」

> > どのような事が起きている状態なのかが、よく分からない状況です。
> >
> > たいへん申し訳ないのですが、こういったパターンの時におきる等、
> > なにか参考になる情報がありましたら、教えて頂けないでしょうか?
>
> ルックアップデータベースの検索失敗時に、このエラーがでます。
> ソース中では、こんな感じです。
>
> /* reject_dict_retry - reject with temporary failure if dict lookup
fails */
>
> static void reject_dict_retry(SMTPD_STATE *state, const char *reply_
name)
> {
> longjmp(smtpd_check_buf, smtpd_check_reject(state, MAIL_ERROR_
RESOURCE,
> 451, "4.3.0",
> "<%s>: Temporary lookup
failure",
> reply_name));
> }
>
> /* check_mail_addr_find - reject with temporary failure if dict lookup
fails */
>
> static const char *check_mail_addr_find(SMTPD_STATE *state,
> const char *reply_name,
> MAPS *maps, const char
*key,
> char **ext)
> {
> const char *result;
>
> dict_errno = 0;
> if ((result = mail_addr_find(maps, key, ext)) == 0
> && dict_errno == DICT_ERR_RETRY)
> reject_dict_retry(state, reply_name);
> return (result);
> }
>
> // これ以外でも何カ所かreject_dict_retry()が使用されている。
>
> ルックアップテーブルの設定はどのようになっていますか?
>
> 完全な設定ミスであれば、全員が接続に失敗するはずですので、一時的な負荷
などが原因な気がします。
> 検索タイムアウトを長めに設定するだけで解消できるかもしれません。
>
> 根本的な対策としては、問題が発生した際のログ、topなど負荷の状況を分析す
る必要がありそうです。
>
> _______________________________________________
> Postfix-jp-list mailing list
> Postfix-jp-list@xxxxx
> http://lists.sourceforge.jp/mailman/listinfo/postfix-jp-list


----------------------------
T.HAGIWARA

mail:
linker@xxxxx
----------------------------

_______________________________________________
Postfix-jp-list mailing list
Postfix-jp-list@xxxxx
http://lists.sourceforge.jp/mailman/listinfo/postfix-jp-list


投稿者 xml-rpc : 2009年8月25日 17:46
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/87900
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。