Thread: brin multi minmax crash for inet value

brin multi minmax crash for inet value

From
Jaime Casanova
Date:
Hi Tomas,

Just noted that this query crash the server. Execute it in the
regression database:

"""
update brintest_multi set inetcol = '192.168.204.50/0'::inet;
"""

Attached is the backtrace. Let me know if you need something else to
track it.

-- 
Jaime Casanova
Director de Servicios Profesionales
SystemGuards - Consultores de PostgreSQL

Attachment

Re: brin multi minmax crash for inet value

From
Justin Pryzby
Date:
On Sun, Sep 12, 2021 at 07:44:47PM -0500, Jaime Casanova wrote:
> Hi Tomas,
> 
> Just noted that this query crash the server. Execute it in the
> regression database:

If I'm not wrong, this is the crash fixed by e1fbe1181 in April.

Could you check what HEAD your server is compiled from ?

-- 
Justin



Re: brin multi minmax crash for inet value

From
Jaime Casanova
Date:
On Sun, Sep 12, 2021 at 08:23:44PM -0500, Justin Pryzby wrote:
> On Sun, Sep 12, 2021 at 07:44:47PM -0500, Jaime Casanova wrote:
> > Hi Tomas,
> > 
> > Just noted that this query crash the server. Execute it in the
> > regression database:
> 
> If I'm not wrong, this is the crash fixed by e1fbe1181 in April.
> 
> Could you check what HEAD your server is compiled from ?
> 

That was with yesterday's head but trying with today's head this
same update works fine.

Maybe there is something else happening here, will try to investigate
tomorrow.

-- 
Jaime Casanova
Director de Servicios Profesionales
SystemGuards - Consultores de PostgreSQL



Re: brin multi minmax crash for inet value

From
Tomas Vondra
Date:
On 9/13/21 8:19 AM, Jaime Casanova wrote:
> On Sun, Sep 12, 2021 at 08:23:44PM -0500, Justin Pryzby wrote:
>> On Sun, Sep 12, 2021 at 07:44:47PM -0500, Jaime Casanova wrote:
>>> Hi Tomas,
>>>
>>> Just noted that this query crash the server. Execute it in the
>>> regression database:
>>
>> If I'm not wrong, this is the crash fixed by e1fbe1181 in April.
>>
>> Could you check what HEAD your server is compiled from ?
>>
> 
> That was with yesterday's head but trying with today's head this
> same update works fine.
> 
> Maybe there is something else happening here, will try to investigate
> tomorrow.
> 

Per the backtrace the value is very close to 0

     delta = -1.1641532182693481e-08

so I suspect this might be a rounding error when calculating the delta 
as a difference between two inet values. That's harmless in practice, 
but it may trigger the assert.

I wonder if the delta should be calculated differently. Currently we 
calculate it "byte by byte" adding up the smaller differences. But that 
has this rounding issue.

regards

-- 
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company