Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Jun 2012 09:55:44 +0100
From:      Anton Shterenlikht <mexas@bristol.ac.uk>
To:        freebsd-current@freebsd.org, freebsd-ia64@freebsd.org
Subject:   Re: csup ends up in sigwai after "Shutting down connection to server", never exits
Message-ID:  <20120618085544.GA12592@mech-cluster241.men.bris.ac.uk>
In-Reply-To: <20120614111505.GA36160@mech-cluster241.men.bris.ac.uk>
References:  <20120614105738.GA35741@mech-cluster241.men.bris.ac.uk> <20120614111505.GA36160@mech-cluster241.men.bris.ac.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jun 14, 2012 at 12:15:05PM +0100, Anton Shterenlikht wrote:
> On Thu, Jun 14, 2012 at 11:57:38AM +0100, Anton Shterenlikht wrote:
> > On ia64 r235474 and r235163 I get: 
> > 
> > # csup -L2 /root/ports-supfile 
> > Parsing supfile "/root/ports-supfile"
> > Connecting to cvsup.uk.FreeBSD.org
> > Connected to 131.111.8.41
> > Server software version: SNAP_16_1h
> > MD5 authentication started
> > MD5 authentication successful
> > Negotiating file attribute support
> > Exchanging collection information
> > Establishing multiplexed-mode data connection
> > Running
> > Updating collection ports-all/cvs
> > Shutting down connection to server
> > 
> > csup never exits.
> > 
> > >From top:
> > 
> >   PID USERNAME    THR PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
> > 33822 root          2  20    0 37496K 23352K sigwai  1   0:32  0.00% csup
> >   
> > 
> > On amd64 r236740M I don't see this problem.
> 
> Just to update - I don't see this problem on ia64 r231193M.
> It seems the only relevant change in usr.bin/csup since then was:
> 
> Index: usr.bin/csup/auth.c
> ===================================================================
> --- usr.bin/csup/auth.c (revision 231193)
> +++ usr.bin/csup/auth.c (working copy)
> @@ -293,7 +293,7 @@
>         gettimeofday(&tv, NULL);
>         pid = getpid();
>         ppid = getppid();
> -       srand(tv.tv_usec ^ tv.tv_sec ^ pid);
> +       srandom(tv.tv_usec ^ tv.tv_sec ^ pid);
>         addrlen = sizeof(laddr);
>         error = getsockname(config->socket, (struct sockaddr *)&laddr, &addrlen);
>         if (error < 0) {

I was thinking of doing a binary search for this,
but realised that I'd have to build/install world,
not just kernel, right? This will take a *long* time.

Shall I submit a PR for this?

-- 
Anton Shterenlikht
Room 2.6, Queen's Building
Mech Eng Dept
Bristol University
University Walk, Bristol BS8 1TR, UK
Tel: +44 (0)117 331 5944
Fax: +44 (0)117 929 4423



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120618085544.GA12592>