• Peter Eisentraut's avatar
    Don't propagate PGAPPNAME through pg_ctl in tests · 8e93a516
    Peter Eisentraut authored
    When libpq is loaded in the server (for instance, by
    libpqwalreceiver), it may use libpq environment variables set in the
    postmaster environment for connection parameter defaults.  This has
    some confusing effects in our test suites.  For example, the TAP test
    infrastructure sets PGAPPNAME to allow identifying clients in the
    server log.  But this environment variable is also inherited by
    temporary servers started with pg_ctl and is then in turn used by
    libpqwalreceiver as the application_name for connecting to remote
    servers where it then shows up in pg_stat_replication and is relevant
    for things like synchronous_standby_names.  Replication already has a
    suitable default for application_name, and overriding that
    accidentally then requires the individual test cases to re-override
    that, which is all very confusing and unnecessary.
    
    To fix, unset PGAPPNAME temporarily before running pg_ctl start or
    restart in the tests.
    
    More comprehensive approaches like unsetting all environment variables
    in pg_ctl were considered but might be too complicated to achieve
    portably.
    
    The now unnecessary re-overriding of application_name by test cases is
    also removed.
    Reviewed-by: default avatarNoah Misch <noah@leadboat.com>
    Discussion: https://www.postgresql.org/message-id/flat/33383613-690e-6f1b-d5ba-4957ff40f6ce@2ndquadrant.com
    8e93a516
010_truncate.pl 5.18 KB