postgres.git / summary / log / commit / refs

commit    2712da8b64b4e399a2666cce2c25329f4f834f2d
Author:   Magnus Hagander <magnus@hagander.net>
Date:     Wed May 31 18:57:25 2017 +0000

    Generate pg_basebackup temporary slot name using backend pid
    
    Using the client pid can easily be non-unique when used on different
    hosts. Using the backend pid should be guaranteed unique, since the
    temporary slot gets removed when the client disconnects so it will be
    gone even if the pid is renewed.
    
    Reported by Ludovic Vaugeois-Pepin


src/bin/pg_basebackup/pg_basebackup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/pg_basebackup/pg_basebackup.c b/src/bin/pg_basebackup/pg_basebackup.c index 432c282b529..3d6fce2e348 100644 --- a/src/bin/pg_basebackup/pg_basebackup.c +++ b/src/bin/pg_basebackup/pg_basebackup.c @@ -493,7 +493,7 @@ LogStreamerMain(logstreamer_param *param) stream.replication_slot = replication_slot; stream.temp_slot = param->temp_slot; if (stream.temp_slot && !stream.replication_slot) - stream.replication_slot = psprintf("pg_basebackup_%d", (int) getpid()); + stream.replication_slot = psprintf("pg_basebackup_%d", (int) PQbackendPID(param->bgconn)); if (format == 'p') stream.walmethod = CreateWalDirectoryMethod(param->xlog, 0, do_sync); [parent: 814573e6c488]