postgres.git / summary / log / commit / refs

commit    e00f4b68dc878dcee46833a742844346daa1e3c8
Author:   Tomas Vondra <tomas.vondra@postgresql.org>
Date:     Thu Aug 16 14:49:10 2018 +0000

    Close the file descriptor in ApplyLogicalMappingFile
    
    The function was forgetting to close the file descriptor, resulting
    in failures like this:
    
      ERROR:  53000: exceeded maxAllocatedDescs (492) while trying to open
      file "pg_logical/mappings/map-4000-4eb-1_60DE1E08-5376b5-537c6b"
      LOCATION:  OpenTransientFile, fd.c:2161
    
    Simply close the file at the end, and backpatch to 9.4 (where logical
    decoding was introduced). While at it, fix a nearby typo.
    
    Discussion: https://www.postgresql.org/message-id/flat/738a590a-2ce5-9394-2bef-7b1caad89b37%402ndquadrant.com


src/backend/replication/logical/reorderbuffer.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/backend/replication/logical/reorderbuffer.c b/src/backend/replication/logical/reorderbuffer.c index c2c4dee7808..d55abb8c34f 100644 --- a/src/backend/replication/logical/reorderbuffer.c +++ b/src/backend/replication/logical/reorderbuffer.c @@ -3283,11 +3283,13 @@ ApplyLogicalMappingFile(HTAB *tuplecid_data, Oid relid, const char *fname) new_ent->combocid = ent->combocid; } } + + CloseTransientFile(fd); } /* - * Check whether the TransactionOId 'xid' is in the pre-sorted array 'xip'. + * Check whether the TransactionOid 'xid' is in the pre-sorted array 'xip'. */ static bool TransactionIdInArray(TransactionId xid, TransactionId *xip, Size num) [parent: 1811900b933c]