0

誰かがメールを送信しようとすると、/var/log/exim_mainlog に奇妙なエラーが表示されます。問題は、これを解決できないことです。ここで試してみます。

2012-10-29 00:35:54 DBD::SQLite::db prepare failed: database is locked at /etc/exim_greylist_sqlite.pl line 1013, <HAN1> line 66.
2012-10-29 00:35:54 H=valid_hostname [valid_ip]:5555 F=<mail@example.com> temporarily rejected RCPT <mail@example.com>: failed to expand ACL string "${perl{greylist}}": Can't call method "execute" on an undefined value at /etc/exim_greylist_sqlite.pl line 1014, <HAN1> line 66.
2012-10-29 00:35:54 SMTP connection from valid_hostname [valid_ip]:5555 closed by QUIT

exim_greylist_sqlite からのいくつかの行:

1012     my $query = "select strftime('%s', block_expires, 'utc')-strftime('%s','now') from relaytofrom where rcpt_to='$lp' and mail_from='$sender_addr'";

1013     $sth = $isp->prepare($query) || print FILE "$query\n";
1014     $sth->execute || print FILE "$query\n";
1015     my @status_array = $sth->fetchrow_array;
1016     $sth->finish;

どこから始めてこれを解決すればよいかさえわかりません。cPanel フォーラムで検索してみましたが、複数の方法で Google を使用してみましたが、結果はありませんでした :(

4

1 に答える 1

0

これらはあなたのケースに当てはまるようです:

Perl の DBD::SQLite を使用しているときに、SQLite がトランザクションの 2 番目のクエリに対して「データベースがロックされています」と表示するのはなぜですか?

ループ内の SELECT によって返された行を更新するにはどうすればよいですか?

あるプロセスが選択の途中にあり、他のプロセスがデータを更新しようとしているようです。他に何がその sqlite データベースにアクセスしており、それをロックしているのかを調べてください。私が正しければ、最初の行以降のすべては、テーブル ロックの競合という根本的な原因からの吹き返しです。

于 2012-10-29T01:54:10.910 に答える