pcp
[Top] [All Lists]

pcp updates - qa/628 (aka e_ext_t) fixup

To: pcp@xxxxxxxxxxx
Subject: pcp updates - qa/628 (aka e_ext_t) fixup
From: Ken McDonell <kenj@xxxxxxxxxxxxxxxx>
Date: Mon, 15 Dec 2014 17:24:26 +1100
Delivered-to: pcp@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0
qa/628 has been run 100 times without failure since these changes were made.

Changes committed to git://git.performancecopilot.org/kenj/pcp.git dev

 debian/control                  |    2 -
 debian/libpcp-pmda3-dev.install |    1 
 man/man3/pmdadaemon.3           |   24 +++++++++++++-
 man/man3/pmdadso.3              |   24 +++++++++++++-
 man/man3/pmdainterfacemoved.3   |   68 ++++++++++++++++++++++++++++++++++++++++
 qa/628                          |   33 ++++++++++++++++++-
 src/include/pcp/pmda.h          |    2 +
 src/libpcp_pmda/src/callback.c  |    6 ++-
 src/libpcp_pmda/src/exports     |    5 ++
 src/libpcp_pmda/src/open.c      |   15 ++++++++
 src/pmcd/src/GNUmakefile        |    2 -
 src/pmcd/src/config.c           |   23 ++++++++++---
 12 files changed, 194 insertions(+), 11 deletions(-)

commit 4a076580e08159414803f67d15332f27e77ef0d5
Author: Ken McDonell <kenj@xxxxxxxxxxxxxxxx>
Date:   Mon Dec 15 15:49:15 2014 +1100

    qa/628: more diags, wait properly in _cleanup()

commit 87908863bb33c4565cd6b42268311470ef8649bc
Author: Ken McDonell <kenj@xxxxxxxxxxxxxxxx>
Date:   Mon Dec 15 15:46:22 2014 +1100

    pmcd - use link with -lpcp_pmda, use pmdaInterfaceMoved()
    
    Accommodate changes in e_ext_t within libpcp_pmda so that pmcd
    actions juggling pmdaInterface structs do not break the behaviour
    of DSO PMDAs.

commit cf8c3e10c8a8d82b8f10f220737a7ce0c76b4c88
Author: Ken McDonell <kenj@xxxxxxxxxxxxxxxx>
Date:   Mon Dec 15 15:33:56 2014 +1100

    libpcp_pmda - add pmdaInterfaceMoved() function
    
    The recent change to e_ext_t replaced the int pmda_interface field
    (held a PMDA_INTERFACE_N value) with a back pointer to the base of
    the pmdaInterface struct.
    
    It was believed that this structure was only manipulated within
    libpcp_pmda, but co-incident and non-deterministic failures of
    qa/628 led to some suspicion that this assertion was not correct.
    
    The e_ext_t struct IS only manipulated within libpcp_pmda, but the
    the associated pmdaInterface struct is created outside libpcp_pmda,
    and the back pointer ONLY works if the pmdaInterface struct is NOT
    moved or relocated.
    
    For most PMDAs this is not a problem.  But pmcd sometimes will shuffle
    and array of pmdaInterface structs and sometimes realloc the whole array,
    thereby both moving AND relocating the pmdaInterface struct.
    
    The new pmdaInterfaceMoved() routine re-establishes the back pointer
    after a pmdaInterface struct is moved.
    
    Also updated the man pages for pmdaDaemon() and pmdaDSO() to
    document the caveat that the pmdaInterface struct passed by pointer
    to these routines is not expected to be moved, and if it is moved
    pmdaInterfaceMoved() is your new best friend.

commit 2312fefe64d266bb94751a4fc6016a485f00a620
Author: Ken McDonell <kenj@xxxxxxxxxxxxxxxx>
Date:   Fri Dec 12 15:49:54 2014 +1100

    Revert "debian/control: add dependency on time package"
    
    This reverts commit c8fa3b5f389dd994a6c283123fdde62e993222d1.
    
    Change was already done, this commit undid it, so revert that!!

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