RE: cvsup broken on amd64?

From: Alexander Zagrebin <alexz_at_visp.ru>
Date: Mon, 19 Sep 2011 09:53:06 +0400
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)
> _at__at_ -240,9 +240,9 _at__at_
>          * 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  
Received on Mon Sep 19 2011 - 03:53:09 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:18 UTC