pcp
[Top] [All Lists]

Re: [pcp] 7 QA failures - 022 365 533 536 722 725 944

To: Ken McDonell <kenj@xxxxxxxxxxxxxxxx>
Subject: Re: [pcp] 7 QA failures - 022 365 533 536 722 725 944
From: Nathan Scott <nathans@xxxxxxxxxx>
Date: Mon, 11 Nov 2013 21:44:23 -0500 (EST)
Cc: PCP Mailing List <pcp@xxxxxxxxxxx>
Delivered-to: pcp@xxxxxxxxxxx
In-reply-to: <527AD010.8010507@xxxxxxxxxxxxxxxx>
References: <527ACC19.7000601@xxxxxxxxxxxxxxxx> <527AD010.8010507@xxxxxxxxxxxxxxxx>
Reply-to: Nathan Scott <nathans@xxxxxxxxxx>
Thread-index: 6y+dALhZqyfv3tGNW38/hPIreUl7kA==
Thread-topic: 7 QA failures - 022 365 533 536 722 725 944

----- Original Message -----
> ...
> == 365 ==
> diff 365.out 365.out.bad

This is now fixed.

> 
> == 722 ==
> diff 722.out 722.out.bad
> >   File "/usr/bin/pmatop", line 44, in <module>
> >     import curses
> > ImportError: No module named curses
> 
> If we need something extra installed it should be (a) included in the
> packaging, and/or (b) checked at run-time to allow a more elegant and
> informative exit than this.

What does "rpm -ql python | grep curses" say?  For me locally, it claims
the curses module is part of the python rpm (which we do have a dep on).

> == 725 ==
> diff 725.out 725.out.bad

This is fixed.

> 
> == 944 ==
> diff 944.out 944.out.bad
> > ...
> > pmcd_wait: Cannot connect to PMCD on host "unix:/tmp/15204.pmcd.socket": No
> > such file or directory
> > 944: line 106: /tmp/15204.log: No such file or directory

Looks like a race in setting up the unix domain socket.  I can't seem to
reproduce it here, and auditing the code I'm not seeing where we get out
of pmNewContext with ENOENT.  Oh, hmm, maybe - can you try this ...

diff --git a/src/libpcp/src/auxconnect.c b/src/libpcp/src/auxconnect.c
index a49629a..b160aeb 100644
--- a/src/libpcp/src/auxconnect.c
+++ b/src/libpcp/src/auxconnect.c
@@ -451,6 +451,8 @@ __pmAuxConnectPMCDUnixSocket(const char *sock_path)
  
     if (sts != 0) {
        /* Unsuccessful connection. */
+       if (sts == ENOENT)
+           sts = ECONNREFUSED;
        __pmCloseSocket(fd);
        fd = -sts;
     }


cheers.

--
Nathan

<Prev in Thread] Current Thread [Next in Thread>