Fix wrong keysize in PrivateRefCountHash creation.
authorAndres Freund <andres@anarazel.de>
Mon, 22 Feb 2016 06:48:44 +0000 (22:48 -0800)
committerAndres Freund <andres@anarazel.de>
Mon, 22 Feb 2016 06:48:44 +0000 (22:48 -0800)
In 4b4b680c3 I accidentally used sizeof(PrivateRefCountArray) instead of
sizeof(PrivateRefCountEntry) when creating the refcount overflow
hashtable. As the former is bigger than the latter, this luckily only
resulted in a slightly increased memory usage when many buffers are
pinned in a backend.

Reported-By: Takashi Horikawa
Discussion: 73FA3881462C614096F815F75628AFCD035A48C3@BPXM01GP.gisp.nec.co.jp
Backpatch: 9.5, where thew new ref count infrastructure was introduced

src/backend/storage/buffer/bufmgr.c

index 7141eb83c68c297de1c67d01e2170828c54c08b8..68cf5cc9f61adb3ac56ebd3827a8e21228f359ba 100644 (file)
@@ -2166,7 +2166,7 @@ InitBufferPoolAccess(void)
 
        MemSet(&hash_ctl, 0, sizeof(hash_ctl));
        hash_ctl.keysize = sizeof(int32);
-       hash_ctl.entrysize = sizeof(PrivateRefCountArray);
+       hash_ctl.entrysize = sizeof(PrivateRefCountEntry);
 
        PrivateRefCountHash = hash_create("PrivateRefCount", 100, &hash_ctl,
                                                                          HASH_ELEM | HASH_BLOBS);