agora inbox for [email protected]help / color / mirror / Atom feed
[PATCH] Add pg_tablespace_avail() functions 189+ messages / 2 participants [nested] [flat]
* [PATCH] Add pg_tablespace_avail() functions @ 2019-11-08 13:12 Christoph Berg <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Christoph Berg @ 2019-11-08 13:12 UTC (permalink / raw) This exposes the f_avail value from statvfs() on tablespace directories on the SQL level, allowing monitoring of free disk space from within the server. On windows, GetDiskFreeSpaceEx() is used. Permissions required match those from pg_tablespace_size. In psql, include a new "Free" column in \db+ output. --- doc/src/sgml/func.sgml | 21 ++++++++ doc/src/sgml/ref/psql-ref.sgml | 2 +- src/backend/utils/adt/dbsize.c | 94 +++++++++++++++++++++++++++++++++ src/bin/psql/describe.c | 11 ++-- src/include/catalog/pg_proc.dat | 8 +++ 5 files changed, 132 insertions(+), 4 deletions(-) diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml index 51dd8ad6571..0b4456ad958 100644 --- a/doc/src/sgml/func.sgml +++ b/doc/src/sgml/func.sgml @@ -30093,6 +30093,27 @@ postgres=# SELECT '0/0'::pg_lsn + pd.segment_number * ps.setting::int + :offset </para></entry> </row> + <row> + <entry role="func_table_entry"><para role="func_signature"> + <indexterm> + <primary>pg_tablespace_avail</primary> + </indexterm> + <function>pg_tablespace_avail</function> ( <type>name</type> ) + <returnvalue>bigint</returnvalue> + </para> + <para role="func_signature"> + <function>pg_tablespace_avail</function> ( <type>oid</type> ) + <returnvalue>bigint</returnvalue> + </para> + <para> + Returns the available disk space in the tablespace with the + specified name or OID. To use this function, you must + have <literal>CREATE</literal> privilege on the specified tablespace + or have privileges of the <literal>pg_read_all_stats</literal> role, + unless it is the default tablespace for the current database. + </para></entry> + </row> + <row> <entry role="func_table_entry"><para role="func_signature"> <indexterm> diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml index cedccc14129..9e1bec0b422 100644 --- a/doc/src/sgml/ref/psql-ref.sgml +++ b/doc/src/sgml/ref/psql-ref.sgml @@ -1492,7 +1492,7 @@ SELECT $1 \parse stmt1 If <literal>x</literal> is appended to the command name, the results are displayed in expanded mode. If <literal>+</literal> is appended to the command name, each tablespace - is listed with its associated options, on-disk size, permissions and + is listed with its associated options, on-disk size and free disk space, permissions and description. </para> </listitem> diff --git a/src/backend/utils/adt/dbsize.c b/src/backend/utils/adt/dbsize.c index 25865b660ef..3a2f47c50ec 100644 --- a/src/backend/utils/adt/dbsize.c +++ b/src/backend/utils/adt/dbsize.c @@ -12,6 +12,11 @@ #include "postgres.h" #include <sys/stat.h> +#ifdef WIN32 +#include <fileapi.h> +#else +#include <sys/statvfs.h> +#endif #include "access/htup_details.h" #include "access/relation.h" @@ -316,6 +321,95 @@ pg_tablespace_size_name(PG_FUNCTION_ARGS) } +/* + * Return available disk space of tablespace. Returns -1 if the tablespace + * directory cannot be found. + */ +static int64 +calculate_tablespace_avail(Oid tblspcOid) +{ + char tblspcPath[MAXPGPATH]; + AclResult aclresult; +#ifdef WIN32 + ULARGE_INTEGER lpFreeBytesAvailable; +#else + struct statvfs fst; +#endif + + /* + * User must have privileges of pg_read_all_stats or have CREATE privilege + * for target tablespace, either explicitly granted or implicitly because + * it is default for current database. + */ + if (tblspcOid != MyDatabaseTableSpace && + !has_privs_of_role(GetUserId(), ROLE_PG_READ_ALL_STATS)) + { + aclresult = object_aclcheck(TableSpaceRelationId, tblspcOid, GetUserId(), ACL_CREATE); + if (aclresult != ACLCHECK_OK) + aclcheck_error(aclresult, OBJECT_TABLESPACE, + get_tablespace_name(tblspcOid)); + } + + if (tblspcOid == DEFAULTTABLESPACE_OID) + snprintf(tblspcPath, MAXPGPATH, "base"); + else if (tblspcOid == GLOBALTABLESPACE_OID) + snprintf(tblspcPath, MAXPGPATH, "global"); + else + snprintf(tblspcPath, MAXPGPATH, "%s/%u/%s", PG_TBLSPC_DIR, tblspcOid, + TABLESPACE_VERSION_DIRECTORY); + +#ifdef WIN32 + if (GetDiskFreeSpaceEx(tblspcPath, &lpFreeBytesAvailable, NULL, NULL) == false) + return -1; + + return lpFreeBytesAvailable.QuadPart; /* ULONGLONG part of ULARGE_INTEGER */ +#else + if (statvfs(tblspcPath, &fst) < 0) + return -1; + + return fst.f_bavail * fst.f_bsize; /* available blocks times block size */ +#endif +} + +Datum +pg_tablespace_avail_oid(PG_FUNCTION_ARGS) +{ + Oid tblspcOid = PG_GETARG_OID(0); + int64 avail; + + /* + * Not needed for correctness, but avoid non-user-facing error message + * later if the tablespace doesn't exist. + */ + if (!SearchSysCacheExists1(TABLESPACEOID, ObjectIdGetDatum(tblspcOid))) + ereport(ERROR, + errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("tablespace with OID %u does not exist", tblspcOid)); + + avail = calculate_tablespace_avail(tblspcOid); + + if (avail < 0) + PG_RETURN_NULL(); + + PG_RETURN_INT64(avail); +} + +Datum +pg_tablespace_avail_name(PG_FUNCTION_ARGS) +{ + Name tblspcName = PG_GETARG_NAME(0); + Oid tblspcOid = get_tablespace_oid(NameStr(*tblspcName), false); + int64 avail; + + avail = calculate_tablespace_avail(tblspcOid); + + if (avail < 0) + PG_RETURN_NULL(); + + PG_RETURN_INT64(avail); +} + + /* * calculate size of (one fork of) a relation * diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c index e6cf468ac9e..8c52a126ac1 100644 --- a/src/bin/psql/describe.c +++ b/src/bin/psql/describe.c @@ -241,10 +241,15 @@ describeTablespaces(const char *pattern, bool verbose) printACLColumn(&buf, "spcacl"); appendPQExpBuffer(&buf, ",\n spcoptions AS \"%s\"" - ",\n pg_catalog.pg_size_pretty(pg_catalog.pg_tablespace_size(oid)) AS \"%s\"" - ",\n pg_catalog.shobj_description(oid, 'pg_tablespace') AS \"%s\"", + ",\n pg_catalog.pg_size_pretty(pg_catalog.pg_tablespace_size(oid)) AS \"%s\"", gettext_noop("Options"), - gettext_noop("Size"), + gettext_noop("Size")); + if (pset.sversion >= 180000) + appendPQExpBuffer(&buf, + ",\n pg_catalog.pg_size_pretty(pg_catalog.pg_tablespace_avail(oid)) AS \"%s\"", + gettext_noop("Free")); + appendPQExpBuffer(&buf, + ",\n pg_catalog.shobj_description(oid, 'pg_tablespace') AS \"%s\"", gettext_noop("Description")); } diff --git a/src/include/catalog/pg_proc.dat b/src/include/catalog/pg_proc.dat index 42e427f8fe8..9d64da6bfb8 100644 --- a/src/include/catalog/pg_proc.dat +++ b/src/include/catalog/pg_proc.dat @@ -7680,6 +7680,14 @@ descr => 'total disk space usage for the specified tablespace', proname => 'pg_tablespace_size', provolatile => 'v', prorettype => 'int8', proargtypes => 'name', prosrc => 'pg_tablespace_size_name' }, +{ oid => '6015', + descr => 'disk stats for the specified tablespace', + proname => 'pg_tablespace_avail', provolatile => 'v', prorettype => 'int8', + proargtypes => 'oid', prosrc => 'pg_tablespace_avail_oid' }, +{ oid => '6016', + descr => 'disk stats for the specified tablespace', + proname => 'pg_tablespace_avail', provolatile => 'v', prorettype => 'int8', + proargtypes => 'name', prosrc => 'pg_tablespace_avail_name' }, { oid => '2324', descr => 'total disk space usage for the specified database', proname => 'pg_database_size', provolatile => 'v', prorettype => 'int8', proargtypes => 'oid', prosrc => 'pg_database_size_oid' }, -- 2.47.2 --vqKhBUYnSUFh3RIa-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
* [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. @ 2026-04-13 09:36 Antonin Houska <[email protected]> 0 siblings, 0 replies; 189+ messages in thread From: Antonin Houska @ 2026-04-13 09:36 UTC (permalink / raw) The value is only needed by te worker, so there is no need to store it in shared memory. --- src/backend/commands/repack_worker.c | 5 +++-- src/include/commands/repack_internal.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index 5bd020e0184..a594d6db25f 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -51,6 +51,7 @@ static XLogSegNo repack_current_segment = 0; static RelFileLocator repacked_rel_locator = {.relNumber = InvalidOid}; static RelFileLocator repacked_rel_toast_locator = {.relNumber = InvalidOid}; +static dsm_segment *worker_dsm_segment = NULL; /* REPACK decoding worker entry point */ void @@ -78,9 +79,9 @@ RepackWorkerMain(Datum main_arg) ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("could not map dynamic shared memory segment")); + worker_dsm_segment = seg; shared = (DecodingWorkerShared *) dsm_segment_address(seg); - shared->dsm_seg = seg; /* Arrange to signal the leader if we exit. */ before_shmem_exit(RepackWorkerShutdown, PointerGetDatum(shared)); @@ -176,7 +177,7 @@ RepackWorkerShutdown(int code, Datum arg) PROCSIG_REPACK_MESSAGE, shared->backend_proc_number); - dsm_detach(shared->dsm_seg); + dsm_detach(worker_dsm_segment); } bool diff --git a/src/include/commands/repack_internal.h b/src/include/commands/repack_internal.h index 3ff64444351..6a85cee8910 100644 --- a/src/include/commands/repack_internal.h +++ b/src/include/commands/repack_internal.h @@ -107,7 +107,6 @@ typedef struct DecodingWorkerShared PGPROC *backend_proc; pid_t backend_pid; ProcNumber backend_proc_number; - dsm_segment *dsm_seg; /* * Memory the queue is located in. -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 189+ messages in thread
end of thread, other threads:[~2026-04-13 09:36 UTC | newest] Thread overview: 189+ messages (download: mbox mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2019-11-08 13:12 [PATCH] Add pg_tablespace_avail() functions Christoph Berg <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]> 2026-04-13 09:36 [PATCH 2/2] Remove dsm_seg from DecodingWorkerShared. Antonin Houska <[email protected]>
This inbox is served by agora; see mirroring instructions for how to clone and mirror all data and code used for this inbox