Date: Mon, 19 Sep 2011 09:53:06 +0400 From: "Alexander Zagrebin" <alexz@visp.ru> To: "'Adrian Chadd'" <adrian@freebsd.org> Cc: freebsd-current@freebsd.org Subject: RE: cvsup broken on amd64? Message-ID: <EBF2A1324C994063B9EAD7090563EC36@vosz.local> In-Reply-To: <CAJ-VmonzwUVEHgzOU1QAY7hGKwLn6Dx2RxTaE4bEn0m4eoee3w@mail.gmail.com> References: <20110908221356.Horde.MFEsZ6Qd9PdOaSIEaid2X_A@avocado.salatschuessel.net><4E692F87.5010708@sentex.net><20110909073305.Horde.oi-EGaQd9PdOaaURAsTRVJk@avocado.salatschuessel.net><4E6A076D.7040309@wintek.com><EA16DA2E96DD411C8C8A7EC81E034162@vosz.local> <CAJ-VmonzwUVEHgzOU1QAY7hGKwLn6Dx2RxTaE4bEn0m4eoee3w@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi!
> So I've taken a look at the csup source.
>
> The problem here is the updater thread setting the "closed" state
> (fixups_closed()) before calling updater_batch() again to handle
> fixups.
>
> Checking for size != 0 at that point may not be valid at the list size
> may actually be 0 for a short period of time.
>
> What about this patch:
>
> Index: updater.c
> ===================================================================
> --- updater.c (revision 224905)
> +++ updater.c (working copy)
> @@ -240,9 +240,9 @@
> * Make sure to close the fixups even in case of an error,
> * so that the lister thread doesn't block indefinitely.
> */
> - fixups_close(up->config->fixups);
> if (!error)
> error = updater_batch(up, 1);
> + fixups_close(up->config->fixups);
> switch (error) {
> case UPDATER_ERR_PROTO:
> xasprintf(&args->errmsg, "Updater failed:
> Protocol error");
I've tried this patch. Now csup "hangs" before handling fixups.
So there is no message "Applying fixups..." at all.
--
Alexander Zagrebin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?EBF2A1324C994063B9EAD7090563EC36>
