Re: BUG #18974: Postgresql repeatable crash after pg_upgrade from 15 to 17.5 version in postgresql_fdw queries - Mailing list pgsql-bugs

From Maxim Boguk
Subject Re: BUG #18974: Postgresql repeatable crash after pg_upgrade from 15 to 17.5 version in postgresql_fdw queries
Date
Msg-id CAK-MWwRyND1W1-t=EaLmpgkXYCr8G7qtinqHpTv_GK6t+Ykj+A@mail.gmail.com
Whole thread Raw
In response to Re: BUG #18974: Postgresql repeatable crash after pg_upgrade from 15 to 17.5 version in postgresql_fdw queries  (Maxim Boguk <maxim.boguk@gmail.com>)
Responses Re: BUG #18974: Postgresql repeatable crash after pg_upgrade from 15 to 17.5 version in postgresql_fdw queries
List pgsql-bugs


On Wed, Jul 2, 2025 at 3:03 AM Maxim Boguk <maxim.boguk@gmail.com> wrote:


On Wed, Jul 2, 2025 at 1:09 AM PG Bug reporting form <noreply@postgresql.org> wrote:
The following bug has been logged on the website:

Bug reference:      18974
Logged by:          Maxim Boguk
Email address:      maxim.boguk@gmail.com
PostgreSQL version: 17.5
Operating system:   Ubuntu
Description:       

Postgresql repeatable crash after pg_upgrade from 15 to 17.5 version in
postgresql_fdw timeouted (via query_timeout) queries
Backtrace data from core file:
Core was generated by `postgres: 17/main: **.app **_data [local] SELECT
'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __strcmp_evex () at ../sysdeps/x86_64/multiarch/strcmp-evex.S:314
warning: 314    ../sysdeps/x86_64/multiarch/strcmp-evex.S: No such file or
directory
(gdb) bt
#0  __strcmp_evex () at ../sysdeps/x86_64/multiarch/strcmp-evex.S:314
#1  0x0000780820fd2df7 in emitHostIdentityInfo (conn=0x5d89b19f6d80,
host_addr=0x7ffd34c50c70 "10.100.103.4") at

(gdb) print ((PGconn *)0x5d89b19f6d80)->connhost[0]
$14 = {type = CHT_HOST_NAME, host = 0x0, hostaddr = 0x5d89b19c53b0 "10.100.103.4", port = 0x5d89b19c5390 "6503", password = 0x0}
As a result displayed_host = conn->connhost[conn->whichhost].host = 0x0
and crash in line strcmp(displayed_host, host_addr) != 0

related FDW definition:
FDW options          | ( dbname '****', hostaddr '10.100.103.4', port '6503')


related part of backtrace:
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __strcmp_evex () at ../sysdeps/x86_64/multiarch/strcmp-evex.S:314

(gdb) bt
#0  __strcmp_evex () at ../sysdeps/x86_64/multiarch/strcmp-evex.S:314
#1  0x0000780820fd2df7 in emitHostIdentityInfo (conn=0x5d89b19f6d80, host_addr=0x7ffd34c50c70 "10.100.103.4") at /usr/src/postgresql-17-17.5-1.pgdg24.04+1/build/../src/interfaces/libpq/fe-connect.c:2128
#2  0x0000780820fd8a0f in PQconnectPoll (conn=conn@entry=0x5d89b19f6d80) at /usr/src/postgresql-17-17.5-1.pgdg24.04+1/build/../src/interfaces/libpq/fe-connect.c:3038
#3  0x0000780820fda44d in pqConnectDBStart (conn=0x5d89b19f6d80) at /usr/src/postgresql-17-17.5-1.pgdg24.04+1/build/../src/interfaces/libpq/fe-connect.c:2446
#4  0x0000780820fda4e2 in PQcancelStart (cancelConn=cancelConn@entry=0x5d89b19f6d80) at /usr/src/postgresql-17-17.5-1.pgdg24.04+1/build/../src/interfaces/libpq/fe-cancel.c:198
#5  0x000078082102401d in libpqsrv_cancel (conn=conn@entry=0x5d89b1785870, endtime=endtime@entry=804720445571683) at /usr/src/postgresql-17-17.5-1.pgdg24.04+1/build/../src/include/libpq/libpq-be-fe-helpers.h:399

in libpqsrv_cancel conn have:
(gdb) print ((PGconn *)0x5d89b1785870)->connhost[0]
$14 = {type = CHT_HOST_ADDRESS, host = 0x0, hostaddr = 0x5d89b16cde00 "10.100.103.4", port = 0x5d89b16cddc0 "6503", password = 0x0}

new connection in PQcancelStart already have wrong type:
(gdb) print ((PGconn *)0x5d89b19f6d80)->connhost[0]
$15 = {type = CHT_HOST_NAME, host = 0x0, hostaddr = 0x5d89b19c53b0 "10.100.103.4", port = 0x5d89b19c5390 "6503", password = 0x0}

 
--
Maxim Boguk
Senior Postgresql DBA

Phone UA: +380 99 143 0000
Phone AU: +61  45 218 5678

pgsql-bugs by date:

Previous
From: Masahiko Sawada
Date:
Subject: Re: Logical replication 'invalid memory alloc request size 1585837200' after upgrading to 17.5
Next
From: Maxim Boguk
Date:
Subject: Re: BUG #18974: Postgresql repeatable crash after pg_upgrade from 15 to 17.5 version in postgresql_fdw queries