agora inbox for pgsql-hackers@postgresql.org
help / color / mirror / Atom feedRe: Dtrace probes documentation
442+ messages / 2 participants
[nested] [flat]
* Re: Dtrace probes documentation
@ 2009-06-01 17:15 Frank Ch. Eigler <fche@redhat.com>
0 siblings, 0 replies; 442+ messages in thread
From: Frank Ch. Eigler @ 2009-06-01 17:15 UTC (permalink / raw)
To: pgsql-hackers; Joshua Tolley <eggyknap@gmail.com>
Tom Lane <tgl@sss.pgh.pa.us> writes:
> [...]
>> See http://blog.endpoint.com/2009/05/postgresql-with-systemtap.html for
>> details. Perhaps it's worth noting in the documentation that SystemTap users
>> will need to use the double-underscore version?
>
> I think a better solution is to persuade the Systemtap guys that they
> ought to accept the single-hyphen spelling. [...]
Will do: http://sourceware.org/PR10225.
- FChE
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared.
@ 2026-04-13 09:36 Antonin Houska <ah@cybertec.at>
0 siblings, 0 replies; 442+ messages in thread
From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw)
The value is only needed by te worker, so there is no need to store it in
shared memory.
---
src/backend/commands/repack_worker.c | 5 +++--
src/include/commands/repack_internal.h | 1 -
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c
index 5bd020e0184..a594d6db25f 100644
--- a/src/backend/commands/repack_worker.c
+++ b/src/backend/commands/repack_worker.c
@@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0;
static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid};
static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid};
+static dsm_segment *worker_dsm_segment = NULL;
/* REPACK decoding worker entry point */
void
@@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg)
ereport(ERROR,
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("could not map dynamic shared memory segment"));
+ worker_dsm_segment = seg;
shared = (DecodingWorkerShared *) dsm_segment_address(seg);
- shared->dsm_seg = seg;
/* Arrange to signal the leader if we exit. */
before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared));
@@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg)
PROCSIG_REPACK_MESSAGE,
shared->backend_proc_number);
- dsm_detach(shared->dsm_seg);
+ dsm_detach(worker_dsm_segment);
}
bool
diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h
index 3ff64444351..6a85cee8910 100644
--- a/src/include/commands/repack_internal.h
+++ b/src/include/commands/repack_internal.h
@@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared
PGPROC *backend_proc;
pid_t backend_pid;
ProcNumber backend_proc_number;
- dsm_segment *dsm_seg;
/*
* Memory the queue is located in.
--
2.47.3
--=-=-=--
^ permalink raw reply [nested|flat] 442+ messages in thread
end of thread, other threads:[~2026-04-13 09:36 UTC | newest]
Thread overview: 442+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2009-06-01 17:15 Re: Dtrace probes documentation Frank Ch. Eigler <fche@redhat.com>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <ah@cybertec.at>
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox