From: Marian Csontos <mcsontos@redhat.com>
To: lvm-devel@redhat.com
Subject: master - lvmetad: Wait at least 80s for the initial scan.
Date: Wed, 26 Mar 2014 11:16:34 +0100 [thread overview]
Message-ID: <5332A902.7050208@redhat.com> (raw)
In-Reply-To: <20140325153912.1E68F60DAA@fedorahosted.org>
On 03/25/2014 04:39 PM, Petr Rockai wrote:
> Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=c13f5dbb2521901f723d4c40fd5992ee0b992d8d
> Commit: c13f5dbb2521901f723d4c40fd5992ee0b992d8d
> Parent: 65bbfdf74ddbb16579c4fa5fc76e1f51aee0da22
> Author: Petr Rockai <prockai@redhat.com>
> AuthorDate: Tue Mar 25 15:53:36 2014 +0100
> Committer: Petr Rockai <prockai@redhat.com>
> CommitterDate: Tue Mar 25 16:38:35 2014 +0100
>
> lvmetad: Wait at least 80s for the initial scan.
>
> ---
> lib/cache/lvmetad.c | 14 +++++++++-----
> 1 files changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/lib/cache/lvmetad.c b/lib/cache/lvmetad.c
> index 040a790..3ee850c 100644
> --- a/lib/cache/lvmetad.c
> +++ b/lib/cache/lvmetad.c
> @@ -142,6 +142,7 @@ static daemon_reply _lvmetad_send(const char *id, ...)
> daemon_reply repl;
> daemon_request req;
> int try = 0;
> + int time = 0, wait;
>
> retry:
> req = daemon_request_make(id);
> @@ -158,7 +159,7 @@ retry:
> daemon_request_destroy(req);
>
> if (!repl.error && !strcmp(daemon_reply_str(repl, "response", ""), "token_mismatch") &&
> - try < 60 && !test_mode()) {
> + try < 10 && time < 80000000 && !test_mode()) {
> /*
> * If another process is trying to scan, they might have the
> * same future token id and it's better to wait and avoid doing
> @@ -171,12 +172,15 @@ retry:
> * the update, we back off for a short while (0.2-2 seconds) and
> * try again.
> */
> - if (!strcmp(daemon_reply_str(repl, "expected", ""), "update in progress") || try % 5)
> - usleep( 50000 + random() % 450000 ); /* 0.05 - 0.5s */
> - else
> + if (!strcmp(daemon_reply_str(repl, "expected", ""), "update in progress") || try % 5) {
> + wait = 50000 + random() % 450000; /* 0.05 - 0.5s */
> + time += wait;
> + usleep( wait );
> + } else {
> /* If the re-scan fails here, we try again later. */
> lvmetad_pvscan_all_devs(_lvmetad_cmd, NULL);
> - ++ try;
> + ++ try;
> + }
This will never get behind try == 1.
> daemon_reply_destroy(repl);
> goto retry;
> }
>
> --
> lvm-devel mailing list
> lvm-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/lvm-devel
>
prev parent reply other threads:[~2014-03-26 10:16 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-25 15:39 master - lvmetad: Wait at least 80s for the initial scan Petr Rockai
2014-03-25 16:00 ` Hannes Reinecke
2014-03-25 17:25 ` Petr Rockai
2014-03-26 10:16 ` Marian Csontos [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5332A902.7050208@redhat.com \
--to=mcsontos@redhat.com \
--cc=lvm-devel@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.