Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37812991
en ru br
Репозитории ALT
S:8.16-alt1
5.1: 5.9.91-alt0.20091119.0.M51.7
4.1: 5.0.90-alt0.20090320.0.M41.3
4.0: 4.0-alt2.M40.2
www.altlinux.org/Changes

Группа :: Система/Серверы
Пакет: mailfromd

 Главная   Изменения   Спек   Патчи   Исходники   Загрузить   Gear   Bugs and FR  Repocop 

From gray@Mirddin.farlep.net Wed Apr 25 11:30:11 2007
Return-Path: <gray@Mirddin.farlep.net>
Received: from srv10.kraft-s.ru ([unix socket])
by kraft-s.ru (Cyrus v2.1.12) with LMTP; Wed, 25 Apr 2007 15:07:31 +0500
X-Sieve: CMU Sieve 2.2
Received: from asy.kraft-s.ru (asy.kraft-s.ru [213.156.193.5])
by srv10.kraft-s.ru (8.13.6/8.13.6) with ESMTP id l3PA6AEE013143
for <asy@kraft-s.ru>; Wed, 25 Apr 2007 15:07:31 +0500
Received: from pop3.sama.ru [213.156.192.38]
by asy.kraft-s.ru with POP3 (fetchmail-6.3.8)
for <asy@kraft-s.ru> (single-drop); Wed, 25 Apr 2007 15:07:28 +0500 (SAMST)
Received: from mx1.kraft-s.net (mx1.kraft-s.net [213.156.192.51])
by srv8.kraft-s.ru (Cyrus v2.2.13) with LMTPA;
Wed, 25 Apr 2007 15:06:03 +0500
X-Sieve: CMU Sieve 2.2
X-Envelope-From: gray@Mirddin.farlep.net
X-Envelope-To: <a_s_y@sama.ru>
Received: from Mirddin.farlep.net (mirddin.farlep.net [213.130.0.1])
by mx1.kraft-s.net (8.14.1/8.14.1) with ESMTP id l3PA5nDV025298
for <a_s_y@sama.ru>; Wed, 25 Apr 2007 15:06:02 +0500
Organization: Err, what do you mean?
X-Mailutils-Message-Id: l3P6UCSr020155
Received: from Mirddin.farlep.net (localhost [127.0.0.1])
by Mirddin.farlep.net with ESMTP id l3P6UCSr020155
for <a_s_y@sama.ru>; Wed, 25 Apr 2007 09:30:12 +0300
Received: (from gray@localhost)
by Mirddin.farlep.net (Guinness Stout/8.12.11/Submit) id l3P6UCt4020154;
Wed, 25 Apr 2007 09:30:12 +0300
Message-Id: <200704250630.l3P6UCt4020154@Mirddin.farlep.net>
To: "Sergey" <a_s_y@sama.ru>
From: "Sergey Poznyakoff" <gray@Mirddin.farlep.net>
Date: Wed, 25 Apr 2007 09:30:11 +0300
Subject: Re: =?koi8-r?b?8NLPwszFzdkg0yBzdm4yMDA3MDQyMyDQ0skgws/M2NvPyg==?= =?koi8-r?b?IM7Bx9LV2svF?=
In-reply-to: Your message of Wed, 25 Apr 2007 00:40:41 +0500 <200704250040.41594.a_s_y@sama.ru>
References: <200704231534.13933.a_s_y@sama.ru> <200704242141.08622.a_s_y@sama.ru> <200704241912.l3OJC6Aw013469@Mirddin.farlep.net> <200704250040.41594.a_s_y@sama.ru>
X-Mailer: MH-E 7.84+cvs; GNU Mailutils 1.0.1; GNU Emacs 21.3.2
MIME-Version: 1.0
Content-Type: text/plain;
charset=koi8-r
Content-Transfer-Encoding: 8bit
X-Virus-Scanned: ClamAV version 0.90.2, clamav-milter version 0.90.2 on av2.kraft-s.net
X-Virus-Scanned: ClamAV version 0.90.2, clamav-milter version 0.90.2 on mx1.kraft-s.net
X-Virus-Status: Clean
X-Length: 3483
X-UID: 5549

Попробуй вот это. При этих изменениях время ожидания между попытками
блокировки меняется экспоненциально, у процесса появляется больше шансов
словить момент открытия. Примерное соответствие lock-retry-count --
время ожидания (sec.) такое:

10 0.1
20 2
40 4
60 6
80 9
120 13
140 16
160 18
210 25
580 60

Думаю в худшем случае 120 - 160 должно быть довольно. Если поможет,
придумаю более удобную схему контроля времени.

Index: src/mu_dbm.c
===================================================================
--- src/mu_dbm.c (revision 1379)
+++ src/mu_dbm.c (working copy)
@@ -219,14 +219,23 @@
try_lock (int fd, int type, struct flock *fl)
{
int i;
-
+ unsigned long to = 1;
+
for (i = 0; i < lock_retry_count_option; i++)
{
+ struct timeval tv;
+
if (fcntl (fd, F_SETLK, fl) == 0)
return 0;
if (!(errno == EAGAIN || errno == EACCES))
break;
- sleep (lock_retry_timeout_option);
+
+ to <<= 1;
+ tv.tv_sec = 0;
+ tv.tv_usec = to;
+ select (0, NULL, NULL, NULL, &tv);
+ if (to >= 1e6)
+ to = 1;
}
return errno;
}


 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin