mirror of
https://github.com/postgres/postgres.git
synced 2025-05-12 16:21:30 +03:00
Pass DSA_ALLOC_HUGE when allocating a shared TIDBitmap.
When creating an unshared TIDBitmap, we pass MCXT_ALLOC_HUGE to allow allocations >1GB, so by analogy we pass DSA_ALLOC_HUGE for a shared TIDBitmap. Bug introduced by commit 98e6e89040a0534ca26914c66cae9dd49ef62ad9. Report by Rafia Sabih, fix by Dilip Kumar, adjusted by me. Discussion: http://postgr.es/m/CAOGQiiPpSnkuKq+oUK_bvQFg2EPGFPN8RwgxTgBa6HU_kQa3EA@mail.gmail.com
This commit is contained in:
parent
facde2a98f
commit
a171f01501
@ -1533,9 +1533,11 @@ pagetable_allocate(pagetable_hash *pagetable, Size size)
|
|||||||
* new memory so that pagetable_free can free the old entry.
|
* new memory so that pagetable_free can free the old entry.
|
||||||
*/
|
*/
|
||||||
tbm->dsapagetableold = tbm->dsapagetable;
|
tbm->dsapagetableold = tbm->dsapagetable;
|
||||||
tbm->dsapagetable = dsa_allocate0(tbm->dsa, sizeof(PTEntryArray) + size);
|
tbm->dsapagetable = dsa_allocate_extended(tbm->dsa,
|
||||||
|
sizeof(PTEntryArray) + size,
|
||||||
|
DSA_ALLOC_HUGE | DSA_ALLOC_ZERO);
|
||||||
ptbase = dsa_get_address(tbm->dsa, tbm->dsapagetable);
|
ptbase = dsa_get_address(tbm->dsa, tbm->dsapagetable);
|
||||||
|
|
||||||
return ptbase->ptentry;
|
return ptbase->ptentry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user