Re: trap instead of error on 32 TiB table

2021-09-09 Thread Heikki Linnakangas
On 09/09/2021 17:25, Tom Lane wrote: Having done that, the check in md.c could be reduced to an Assert, although there's something to be said for leaving it as-is as an extra layer of defense. Some operations call smgrextend() directly, like B-tree index creation. We don't want those operation

Re: trap instead of error on 32 TiB table

2021-09-09 Thread Tom Lane
Christoph Berg writes: >> Can you provide a stack trace from that? > #2 0x558b6223d46e in ExceptionalCondition > (conditionName=conditionName@entry=0x558b623b2577 "tagPtr->blockNum != P_NEW", > errorType=errorType@entry=0x558b6229b016 "FailedAssertion", > fileName=fileName@entry=0x5

Re: trap instead of error on 32 TiB table

2021-09-09 Thread Christoph Berg
Re: Tom Lane > Can you provide a stack trace from that? PG log: TRAP: FailedAssertion("tagPtr->blockNum != P_NEW", File: "./build/../src/backend/storage/buffer/buf_table.c", Line: 125) postgres: 13/main: cbe postgres [local] INSERT(ExceptionalCondition+0x7d)[0x558b6223d44d] postgres: 13/main: c

Re: trap instead of error on 32 TiB table

2021-09-09 Thread Tom Lane
Christoph Berg writes: > I was wondering what happens when the 32 TiB per table limit is > reached, so I faked 32767 1 GiB sparse files using dd and then tried > inserting more rows. > On a cassert-enabled build I got: > TRAP: FailedAssertion("tagPtr->blockNum != P_NEW", File: > "./build/../src

Re: trap instead of error on 32 TiB table

2021-09-09 Thread Robert Haas
On Thu, Sep 9, 2021 at 7:52 AM Christoph Berg wrote: > Shouldn't the cassert build raise the ERROR instead as well? We should definitely get an ERROR in both cases, not an assertion failure. Exactly which ERROR we get seems negotiable. -- Robert Haas EDB: http://www.enterprisedb.com

trap instead of error on 32 TiB table

2021-09-09 Thread Christoph Berg
I was wondering what happens when the 32 TiB per table limit is reached, so I faked 32767 1 GiB sparse files using dd and then tried inserting more rows. On a cassert-enabled build I got: TRAP: FailedAssertion("tagPtr->blockNum != P_NEW", File: "./build/../src/backend/storage/buffer/buf_table.c"