BUG #14218: pg_logical_slot_get_changes causes segmentation fault

From: alexey(dot)kuntsevich(at)gmail(dot)com
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #14218: pg_logical_slot_get_changes causes segmentation fault
Date: 2016-06-29 07:10:22
Message-ID: 20160629071022.1407.10647@wrigleys.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 14218
Logged by: Alexey Kuntsevich
Email address: alexey(dot)kuntsevich(at)gmail(dot)com
PostgreSQL version: 9.5.2
Operating system: Debian Jessie 8.4 x64
Description:

We enabled logical replication on our postgresql cluster, created a new
replication slot with vanilla test_decoding decoder and ran an app that
polls 10000 rows from this slot once per second. It ran fine for a day,
survived several bulk uploads of ~1mln rows until we did bulk upload of
~8mln rows at once. During the upload our postgresql instance disconnected
all clients and reported that it is in recovery. Core dump was created and
when we checked the logs we saw

2016-06-28 22:16:55 GMT [23598]: [28-1] db=,user=,app=,client= LOG: 00000:
server process (PID 8369) was terminated by signal 11: Segmentation fault
2016-06-28 22:16:55 GMT [23598]: [29-1] db=,user=,app=,client= DETAIL:
Failed process was running: SELECT * FROM
pg_logical_slot_get_changes('regression_slot', NULL, NULL) LIMIT 10000;
2016-06-28 22:16:55 GMT [23598]: [30-1] db=,user=,app=,client= LOCATION:
LogChildExit, postmaster.c:3471
2016-06-28 22:16:55 GMT [23598]: [31-1] db=,user=,app=,client= LOG: 00000:
terminating any other active server processes
2016-06-28 22:16:55 GMT [23598]: [32-1] db=,user=,app=,client= LOCATION:
HandleChildCrash, postmaster.c:3191
2016-06-28 22:16:55 GMT [24845]: [85-1]
db=dw,user=app,app=monitor_node,client=<hidden ip1> WARNING: 57P02:
terminating connection because of crash of another server process
2016-06-28 22:16:55 GMT [24845]: [86-1]
db=dw,user=app,app=monitor_node,client=<hidden ip1> DETAIL: The postmaster
has commanded this server process to roll back the current transaction and
exit, because another server process exited abnormally and possibly
corrupted shared memory.
2016-06-28 22:16:55 GMT [24845]: [87-1]
db=dw,user=app,app=monitor_node,client=<hidden ip1> HINT: In a moment you
should be able to reconnect to the database and repeat your command.
2016-06-28 22:16:55 GMT [24845]: [88-1]
db=dw,user=app,app=monitor_node,client=<hidden ip1> LOCATION: quickdie,
postgres.c:2612
2016-06-28 22:16:55 GMT [24849]: [193-1]
db=dw,user=app,app=monitor_node,client=<hidden ip2> WARNING: 57P02:
terminating connection because of crash of another server process
2016-06-28 22:16:55 GMT [24849]: [194-1]
db=dw,user=app,app=monitor_node,client=<hidden ip2> DETAIL: The postmaster
has commanded this server process to roll back the current transaction and
exit, because another server process exited abnormally and possibly
corrupted shared memory.
2016-06-28 22:16:55 GMT [24849]: [195-1]
db=dw,user=app,app=monitor_node,client=<hidden ip2> HINT: In a moment you
should be able to reconnect to the database and repeat your command.
2016-06-28 22:16:55 GMT [24849]: [196-1]
db=dw,user=app,app=monitor_node,client=<hidden ip2> LOCATION: quickdie,
postgres.c:2612
2016-06-28 22:16:55 GMT [8370]: [58059-1]
db=dw,user=app,app=BonusService,client=<hidden ip2> WARNING: 57P02:
terminating connection because of crash of another server process
2016-06-28 22:16:55 GMT [8370]: [58060-1]
db=dw,user=app,app=BonusService,client=<hidden ip2> DETAIL: The postmaster
has commanded this server process to roll back the current transaction and
exit, because another server process exited abnormally and possibly
corrupted shared memory.
2016-06-28 22:16:55 GMT [8370]: [58061-1]
db=dw,user=app,app=BonusService,client=<hidden ip2> HINT: In a moment you
should be able to reconnect to the database and repeat your command.
2016-06-28 22:16:55 GMT [8370]: [58062-1]
db=dw,user=app,app=BonusService,client=<hidden ip2> LOCATION: quickdie,
postgres.c:2612
2016-06-28 22:16:55 GMT [24848]: [63-1]
db=dw,user=app,app=monitor_node,client=<hidden ip2> WARNING: 57P02:
terminating connection because of crash of another server process
2016-06-28 22:16:55 GMT [24848]: [64-1]
db=dw,user=app,app=monitor_node,client=<hidden ip2> DETAIL: The postmaster
has commanded this server process to roll back the current transaction and
exit, because another server process exited abnormally and possibly
corrupted shared memory.
2016-06-28 22:16:55 GMT [24848]: [65-1]
db=dw,user=app,app=monitor_node,client=<hidden ip2> HINT: In a moment you
should be able to reconnect to the database and repeat your command.

We're able to reproduce the issue atm.

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Peter Geoghegan 2016-06-29 07:19:01 Re: BUG #14218: pg_logical_slot_get_changes causes segmentation fault
Previous Message Michael Paquier 2016-06-29 05:13:22 Re: BUG #14150: Attempted to delete invisible tuple