postgres.git / summary / log / commit / refs

commit    566afa15c8dc64430dfb1e95c661e5875863253c
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Thu Aug 25 02:20:01 2016 +0000

    Fix small query-lifespan memory leak in bulk updates.
    
    When there is an identifiable REPLICA IDENTITY index on the target table,
    heap_update leaks the id_attrs bitmapset.  That's not many bytes, but it
    adds up over enough rows, since the code typically runs in a query-lifespan
    context.  Bug introduced in commit e55704d8b, which did a rather poor job
    of cloning the existing use-pattern for RelationGetIndexAttrBitmap().
    
    Per bug #14293 from Zhou Digoal.  Back-patch to 9.4 where the bug was
    introduced.
    
    Report: <20160824114320.15676.45171@wrigleys.postgresql.org>


src/backend/access/heap/heapam.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index 764c5fba8f4..0bfc044e948 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -3467,6 +3467,7 @@ l2: ReleaseBuffer(vmbuffer); bms_free(hot_attrs); bms_free(key_attrs); + bms_free(id_attrs); return result; } @@ -3928,6 +3929,7 @@ l2: bms_free(hot_attrs); bms_free(key_attrs); + bms_free(id_attrs); return HeapTupleMayBeUpdated; } [parent: 08a823e53b78]