BUG #17370: shmem lost on segfault
The following bug has been logged on the website:
Bug reference: 17370
Logged by: RekGRpth
Email address: rekgrpth@gmail.com
PostgreSQL version: 14.1
Operating system: docker alpine
Description:
In developing my https://github.com/RekGRpth/pg_task I found strange
behavior of shared memory segment.
I setup shared memory segment and give it to background worker, which I
start with default restart interval.
See
https://github.com/RekGRpth/pg_task/blob/d951723b6e556479f9a3fa960a6b3d1fb8f52164/conf.c#L67-L134
And everything works fine, even if background worker exits on error (if for
example I drop needed table task), then it restarts and can access to shared
memory segment.
See
https://github.com/RekGRpth/pg_task/blob/d951723b6e556479f9a3fa960a6b3d1fb8f52164/work.c#L742
But if third other process terminates by segmentation fault, my background
worker restarts fine but can not access to shared memory segment.
dsm_attach returns NULL
What I need to do to solve this problem?
Hi,
On Wed, Jan 19, 2022 at 03:05:56AM +0000, PG Bug reporting form wrote:
The following bug has been logged on the website:
Bug reference: 17370
Logged by: RekGRpth
Email address: rekgrpth@gmail.com
PostgreSQL version: 14.1
Operating system: docker alpine
Description:In developing my https://github.com/RekGRpth/pg_task I found strange
behavior of shared memory segment.
This is not a postgres bug. If you need help with developing an extension you
should send a message to -hackers.
That being said, in case of unclean shutdown (which happens if a process
segfaults), the postmaster will restart and any shared memory will be lost, so
I'm assuming that you somehow serialize a handle which isn't valid anymore
after a restart, unclean or not.
Ok, thanks.
What I should do in this case (postmaster restarts my background
worker and shared memory is lost)?
When I storage in bgw_extra field - everything is ok (with restarting
after segfault), but it size too small.
ср, 19 янв. 2022 г. в 14:28, Julien Rouhaud <rjuju123@gmail.com>:
Show quoted text
Hi,
On Wed, Jan 19, 2022 at 03:05:56AM +0000, PG Bug reporting form wrote:
The following bug has been logged on the website:
Bug reference: 17370
Logged by: RekGRpth
Email address: rekgrpth@gmail.com
PostgreSQL version: 14.1
Operating system: docker alpine
Description:In developing my https://github.com/RekGRpth/pg_task I found strange
behavior of shared memory segment.This is not a postgres bug. If you need help with developing an extension you
should send a message to -hackers.That being said, in case of unclean shutdown (which happens if a process
segfaults), the postmaster will restart and any shared memory will be lost, so
I'm assuming that you somehow serialize a handle which isn't valid anymore
after a restart, unclean or not.
Hi,
On Wed, Jan 19, 2022 at 02:34:13PM +0500, RekGRpth wrote:
Ok, thanks.
What I should do in this case (postmaster restarts my background
worker and shared memory is lost)?
When I storage in bgw_extra field - everything is ok (with restarting
after segfault), but it size too small.
I don't know, and as I said you should ask on -hackers, ideally with a good
description of how everything works or a minimal code to reproduce your
problem as it's not really clear right now.