cvsup broken on amd64?
Adrian Chadd
adrian at freebsd.org
Sun Sep 18 10:11:24 UTC 2011
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");
Oliver, would you please try that?
Thanks,
Adrian
More information about the freebsd-current
mailing list