2009年8月25日

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

中満です。

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


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




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