agora inbox for [email protected]help / color / mirror / Atom feed
[PATCH 7/7] Teach snapshot builder to skip transactions running REPACK (CONCURRENTLY). 170+ messages / 2 participants [nested] [flat]
* [PATCH 7/7] Teach snapshot builder to skip transactions running REPACK (CONCURRENTLY). @ 2026-03-17 19:22 Antonin Houska <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Antonin Houska @ 2026-03-17 19:22 UTC (permalink / raw) During logical decoding, we need to know if particular transaction performed catalog changes because catalog information is needed to construct heap tuples. To be sure that we have enough information of each transaction, the logical decoding cannot start before all the already running transactions have completed. The problem with REPACK (CONCURRENTLY) is that it has XID assigned and writes WAL records marked with it. Thus if another backend runs REPACK (CONCURRENTLY) and tries to setup the logical decoding, it has to wait for the completion of all the other transactions involved in REPACK (CONCURRENTLY). However, REPACK (CONCURRENTLY) does not perform any catalog changes relevant to logical decoding, so the other backends executing this command can ignore it. This patch implements it by adding information about transactions executing the command to the xl_running_xacts WAL record, and by teaching the snapshot builder to use the information. --- src/backend/access/rmgrdesc/standbydesc.c | 15 ++++- src/backend/access/transam/xlog.c | 2 + src/backend/commands/cluster.c | 16 +++++ src/backend/replication/logical/snapbuild.c | 38 ++++++++--- src/backend/storage/ipc/procarray.c | 73 +++++++++++++++++++-- src/backend/storage/ipc/standby.c | 6 +- src/include/access/xlog_internal.h | 2 +- src/include/storage/proc.h | 3 +- src/include/storage/standby.h | 3 + src/include/storage/standbydefs.h | 2 + 10 files changed, 138 insertions(+), 22 deletions(-) diff --git a/src/backend/access/rmgrdesc/standbydesc.c b/src/backend/access/rmgrdesc/standbydesc.c index 0a291354ae2..79c052d3607 100644 --- a/src/backend/access/rmgrdesc/standbydesc.c +++ b/src/backend/access/rmgrdesc/standbydesc.c @@ -21,10 +21,11 @@ standby_desc_running_xacts(StringInfo buf, xl_running_xacts *xlrec) { int i; - appendStringInfo(buf, "nextXid %u latestCompletedXid %u oldestRunningXid %u", + appendStringInfo(buf, "nextXid %u latestCompletedXid %u oldestRunningXid %u oldestRunningXid %u", xlrec->nextXid, xlrec->latestCompletedXid, - xlrec->oldestRunningXid); + xlrec->oldestRunningXid, + xlrec->oldestRunningXidLogical); if (xlrec->xcnt > 0) { appendStringInfo(buf, "; %d xacts:", xlrec->xcnt); @@ -41,6 +42,16 @@ standby_desc_running_xacts(StringInfo buf, xl_running_xacts *xlrec) for (i = 0; i < xlrec->subxcnt; i++) appendStringInfo(buf, " %u", xlrec->xids[xlrec->xcnt + i]); } + + if (xlrec->xcnt_repack > 0) + { + TransactionId *xids_repack; + + appendStringInfo(buf, "; %d xacts_repack:", xlrec->xcnt_repack); + xids_repack = xlrec->xids + xlrec->xcnt + xlrec->subxcnt; + for (i = 0; i < xlrec->xcnt_repack; i++) + appendStringInfo(buf, " %u", xids_repack[i]); + } } void diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index f5c9a34374d..d050b0b1444 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -5912,6 +5912,7 @@ StartupXLOG(void) * subxids are listed with their parent prepared transactions. */ running.xcnt = nxids; + running.xcnt_repack = 0; running.subxcnt = 0; running.subxid_status = SUBXIDS_IN_SUBTRANS; running.nextXid = XidFromFullTransactionId(checkPoint.nextXid); @@ -8477,6 +8478,7 @@ xlog_redo(XLogReaderState *record) * with their parent prepared transactions. */ running.xcnt = nxids; + running.xcnt_repack = 0; running.subxcnt = 0; running.subxid_status = SUBXIDS_IN_SUBTRANS; running.nextXid = XidFromFullTransactionId(checkPoint.nextXid); diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index 4fd10a5e7b3..73407c383da 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -1086,6 +1086,22 @@ rebuild_relation(Relation OldHeap, Relation index, bool verbose, if (concurrent) { + /* + * Do not let other backends wait for our completion during their + * setup of logical replication. Unlike logical replication publisher, + * we will have XID assigned, so the other backends - whether + * walsenders involved in logical replication or regular backends + * executing also REPACK (CONCURRENTLY) - would have to wait for our + * completion before they can build their initial snapshot. It is + * o.k. for any decoding backend to ignore us because we do not change + * tuple descriptor of any table, and the data changes we write should + * not be decoded by other backends. + */ + LWLockAcquire(ProcArrayLock, LW_EXCLUSIVE); + MyProc->statusFlags |= PROC_IN_REPACK; + ProcGlobal->statusFlags[MyProc->pgxactoff] = MyProc->statusFlags; + LWLockRelease(ProcArrayLock); + /* * The worker needs to be member of the locking group we're the leader * of. We ought to become the leader before the worker starts. The diff --git a/src/backend/replication/logical/snapbuild.c b/src/backend/replication/logical/snapbuild.c index 9cf499ce7c6..fbdd4600a2b 100644 --- a/src/backend/replication/logical/snapbuild.c +++ b/src/backend/replication/logical/snapbuild.c @@ -1172,7 +1172,7 @@ SnapBuildProcessRunningXacts(SnapBuild *builder, XLogRecPtr lsn, xl_running_xact * xmin, which looks odd but is correct and actually more efficient, since * we hit fast paths in heapam_visibility.c. */ - builder->xmin = running->oldestRunningXid; + builder->xmin = running->oldestRunningXidLogical; /* Remove transactions we don't need to keep track off anymore */ SnapBuildPurgeOlderTxn(builder); @@ -1188,9 +1188,9 @@ SnapBuildProcessRunningXacts(SnapBuild *builder, XLogRecPtr lsn, xl_running_xact */ xmin = ReorderBufferGetOldestXmin(builder->reorder); if (xmin == InvalidTransactionId) - xmin = running->oldestRunningXid; + xmin = running->oldestRunningXidLogical; elog(DEBUG3, "xmin: %u, xmax: %u, oldest running: %u, oldest xmin: %u", - builder->xmin, builder->xmax, running->oldestRunningXid, xmin); + builder->xmin, builder->xmax, running->oldestRunningXidLogical, xmin); LogicalIncreaseXminForSlot(lsn, xmin); /* @@ -1275,14 +1275,14 @@ SnapBuildFindSnapshot(SnapBuild *builder, XLogRecPtr lsn, xl_running_xacts *runn * have all necessary catalog rows anymore. */ if (TransactionIdIsNormal(builder->initial_xmin_horizon) && - NormalTransactionIdPrecedes(running->oldestRunningXid, + NormalTransactionIdPrecedes(running->oldestRunningXidLogical, builder->initial_xmin_horizon)) { ereport(DEBUG1, errmsg_internal("skipping snapshot at %X/%08X while building logical decoding snapshot, xmin horizon too low", LSN_FORMAT_ARGS(lsn)), errdetail_internal("initial xmin horizon of %u vs the snapshot's %u", - builder->initial_xmin_horizon, running->oldestRunningXid)); + builder->initial_xmin_horizon, running->oldestRunningXidLogical)); SnapBuildWaitSnapshot(running, builder->initial_xmin_horizon); @@ -1299,7 +1299,7 @@ SnapBuildFindSnapshot(SnapBuild *builder, XLogRecPtr lsn, xl_running_xacts *runn * NB: We might have already started to incrementally assemble a snapshot, * so we need to be careful to deal with that. */ - if (running->oldestRunningXid == running->nextXid) + if (running->oldestRunningXidLogical == running->nextXid) { if (!XLogRecPtrIsValid(builder->start_decoding_at) || builder->start_decoding_at <= lsn) @@ -1378,14 +1378,14 @@ SnapBuildFindSnapshot(SnapBuild *builder, XLogRecPtr lsn, xl_running_xacts *runn /* * c) transition from BUILDING_SNAPSHOT to FULL_SNAPSHOT. * - * In BUILDING_SNAPSHOT state, and this xl_running_xacts' oldestRunningXid + * In BUILDING_SNAPSHOT state, and this xl_running_xacts' oldestRunningXidLogical * is >= than nextXid from when we switched to BUILDING_SNAPSHOT. This * means all transactions starting afterwards have enough information to * be decoded. Switch to FULL_SNAPSHOT. */ else if (builder->state == SNAPBUILD_BUILDING_SNAPSHOT && TransactionIdPrecedesOrEquals(builder->next_phase_at, - running->oldestRunningXid)) + running->oldestRunningXidLogical)) { builder->state = SNAPBUILD_FULL_SNAPSHOT; builder->next_phase_at = running->nextXid; @@ -1402,14 +1402,14 @@ SnapBuildFindSnapshot(SnapBuild *builder, XLogRecPtr lsn, xl_running_xacts *runn /* * c) transition from FULL_SNAPSHOT to CONSISTENT. * - * In FULL_SNAPSHOT state, and this xl_running_xacts' oldestRunningXid is + * In FULL_SNAPSHOT state, and this xl_running_xacts' oldestRunningXidLogical is * >= than nextXid from when we switched to FULL_SNAPSHOT. This means all * transactions that are currently in progress have a catalog snapshot, * and all their changes have been collected. Switch to CONSISTENT. */ else if (builder->state == SNAPBUILD_FULL_SNAPSHOT && TransactionIdPrecedesOrEquals(builder->next_phase_at, - running->oldestRunningXid)) + running->oldestRunningXidLogical)) { builder->state = SNAPBUILD_CONSISTENT; builder->next_phase_at = InvalidTransactionId; @@ -1459,6 +1459,24 @@ SnapBuildWaitSnapshot(xl_running_xacts *running, TransactionId cutoff) if (TransactionIdFollows(xid, cutoff)) continue; + /* Do not wait for transactions running REPACK (CONCURRENTLY). */ + if (running->xcnt_repack > 0) + { + TransactionId *xids_repack; + int i; + + xids_repack = running->xids + running->xcnt + running->subxcnt; + + for (i = 0; i < running->xcnt_repack; i++) + { + if (xid == xids_repack[i]) + break; + } + /* Found? */ + if (i < running->xcnt_repack) + continue; + } + XactLockTableWait(xid, NULL, NULL, XLTW_None); } diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c index 0f913897acc..f1a03e6a754 100644 --- a/src/backend/storage/ipc/procarray.c +++ b/src/backend/storage/ipc/procarray.c @@ -2643,15 +2643,24 @@ GetRunningTransactionData(void) RunningTransactions CurrentRunningXacts = &CurrentRunningXactsData; TransactionId latestCompletedXid; TransactionId oldestRunningXid; + TransactionId oldestRunningXidLogical; TransactionId oldestDatabaseRunningXid; TransactionId *xids; int index; - int count; + int count, count_repack; int subcount; bool suboverflowed; + TransactionId *xids_repack = NULL; + bool logical_decoding_enabled = IsLogicalDecodingEnabled(); Assert(!RecoveryInProgress()); + /* + * TODO Consider a GUC to reserve certain amount of replication slots for + * REPACK (CONCURRENTLY) and using it here. + */ +#define MAX_REPACK_XIDS 16 + /* * Allocating space for maxProcs xids is usually overkill; numProcs would * be sufficient. But it seems better to do the malloc while not holding @@ -2663,11 +2672,13 @@ GetRunningTransactionData(void) */ if (CurrentRunningXacts->xids == NULL) { + int nrepack = logical_decoding_enabled ? MAX_REPACK_XIDS : 0; + /* * First call */ CurrentRunningXacts->xids = (TransactionId *) - malloc(TOTAL_MAX_CACHED_SUBXIDS * sizeof(TransactionId)); + malloc((TOTAL_MAX_CACHED_SUBXIDS + nrepack) * sizeof(TransactionId)); if (CurrentRunningXacts->xids == NULL) ereport(ERROR, (errcode(ERRCODE_OUT_OF_MEMORY), @@ -2676,7 +2687,10 @@ GetRunningTransactionData(void) xids = CurrentRunningXacts->xids; - count = subcount = 0; + if (logical_decoding_enabled) + xids_repack = palloc_array(TransactionId, MAX_REPACK_XIDS); + + count = subcount = count_repack = 0; suboverflowed = false; /* @@ -2688,7 +2702,7 @@ GetRunningTransactionData(void) latestCompletedXid = XidFromFullTransactionId(TransamVariables->latestCompletedXid); - oldestDatabaseRunningXid = oldestRunningXid = + oldestDatabaseRunningXid = oldestRunningXid = oldestRunningXidLogical = XidFromFullTransactionId(TransamVariables->nextXid); /* @@ -2697,6 +2711,8 @@ GetRunningTransactionData(void) for (index = 0; index < arrayP->numProcs; index++) { TransactionId xid; + int pgprocno; + PGPROC *proc; /* Fetch xid just once - see GetNewTransactionId */ xid = UINT32_ACCESS_ONCE(other_xids[index]); @@ -2716,6 +2732,21 @@ GetRunningTransactionData(void) if (TransactionIdPrecedes(xid, oldestRunningXid)) oldestRunningXid = xid; + if (logical_decoding_enabled && + TransactionIdPrecedes(xid, oldestRunningXidLogical)) + { + /* + * Backends running REPACK concurrently need to be excluded from + * oldestRunningXidLogical, otherwise the snapshot builder cannot + * proceed in building the initial snapshot. + */ + pgprocno = arrayP->pgprocnos[index]; + proc = &allProcs[pgprocno]; + + if ((proc->statusFlags & PROC_IN_REPACK) == 0) + oldestRunningXidLogical = xid; + } + /* * Also, update the oldest running xid within the current database. As * fetching pgprocno and PGPROC could cause cache misses, we do cheap @@ -2723,8 +2754,8 @@ GetRunningTransactionData(void) */ if (TransactionIdPrecedes(xid, oldestDatabaseRunningXid)) { - int pgprocno = arrayP->pgprocnos[index]; - PGPROC *proc = &allProcs[pgprocno]; + pgprocno = arrayP->pgprocnos[index]; + proc = &allProcs[pgprocno]; if (proc->databaseId == MyDatabaseId) oldestDatabaseRunningXid = xid; @@ -2742,6 +2773,19 @@ GetRunningTransactionData(void) */ xids[count++] = xid; + + /* + * Collect XIDSs of transactions running REPACK (CONCURRENTLY). + */ + if (logical_decoding_enabled && + count_repack < MAX_REPACK_XIDS) + { + pgprocno = arrayP->pgprocnos[index]; + proc = &allProcs[pgprocno]; + + if (proc->statusFlags & PROC_IN_REPACK) + xids_repack[count_repack++] = xid; + } } /* @@ -2782,6 +2826,19 @@ GetRunningTransactionData(void) } } + /* + * Append the XIDs running REPACK (CONCURRENTLY), if any. + * + * XXX Should we sort the array and use bsearch() when using it? + */ + if (count_repack > 0) + { + for (int i = 0; i < count_repack; i++) + xids[count++] = xids_repack[i]; + } + if (xids_repack) + pfree(xids_repack); + /* * It's important *not* to include the limits set by slots here because * snapbuild.c uses oldestRunningXid to manage its xmin horizon. If those @@ -2791,11 +2848,13 @@ GetRunningTransactionData(void) * increases if slots do. */ - CurrentRunningXacts->xcnt = count - subcount; + CurrentRunningXacts->xcnt = count - subcount - count_repack; CurrentRunningXacts->subxcnt = subcount; + CurrentRunningXacts->xcnt_repack = count_repack; CurrentRunningXacts->subxid_status = suboverflowed ? SUBXIDS_IN_SUBTRANS : SUBXIDS_IN_ARRAY; CurrentRunningXacts->nextXid = XidFromFullTransactionId(TransamVariables->nextXid); CurrentRunningXacts->oldestRunningXid = oldestRunningXid; + CurrentRunningXacts->oldestRunningXidLogical = oldestRunningXidLogical; CurrentRunningXacts->oldestDatabaseRunningXid = oldestDatabaseRunningXid; CurrentRunningXacts->latestCompletedXid = latestCompletedXid; diff --git a/src/backend/storage/ipc/standby.c b/src/backend/storage/ipc/standby.c index f3ad90c7c7a..5c4121fcbc8 100644 --- a/src/backend/storage/ipc/standby.c +++ b/src/backend/storage/ipc/standby.c @@ -1188,6 +1188,7 @@ standby_redo(XLogReaderState *record) RunningTransactionsData running; running.xcnt = xlrec->xcnt; + running.xcnt_repack = xlrec->xcnt_repack; running.subxcnt = xlrec->subxcnt; running.subxid_status = xlrec->subxid_overflow ? SUBXIDS_MISSING : SUBXIDS_IN_ARRAY; running.nextXid = xlrec->nextXid; @@ -1358,10 +1359,12 @@ LogCurrentRunningXacts(RunningTransactions CurrRunningXacts) XLogRecPtr recptr; xlrec.xcnt = CurrRunningXacts->xcnt; + xlrec.xcnt_repack = CurrRunningXacts->xcnt_repack; xlrec.subxcnt = CurrRunningXacts->subxcnt; xlrec.subxid_overflow = (CurrRunningXacts->subxid_status != SUBXIDS_IN_ARRAY); xlrec.nextXid = CurrRunningXacts->nextXid; xlrec.oldestRunningXid = CurrRunningXacts->oldestRunningXid; + xlrec.oldestRunningXidLogical = CurrRunningXacts->oldestRunningXidLogical; xlrec.latestCompletedXid = CurrRunningXacts->latestCompletedXid; /* Header */ @@ -1372,7 +1375,8 @@ LogCurrentRunningXacts(RunningTransactions CurrRunningXacts) /* array of TransactionIds */ if (xlrec.xcnt > 0) XLogRegisterData(CurrRunningXacts->xids, - (xlrec.xcnt + xlrec.subxcnt) * sizeof(TransactionId)); + (xlrec.xcnt + xlrec.xcnt_repack + xlrec.subxcnt) * + sizeof(TransactionId)); recptr = XLogInsert(RM_STANDBY_ID, XLOG_RUNNING_XACTS); diff --git a/src/include/access/xlog_internal.h b/src/include/access/xlog_internal.h index 629ac3a7d3e..1730b07810f 100644 --- a/src/include/access/xlog_internal.h +++ b/src/include/access/xlog_internal.h @@ -31,7 +31,7 @@ /* * Each page of XLOG file has a header like this: */ -#define XLOG_PAGE_MAGIC 0xD11D /* can be used as WAL version indicator */ +#define XLOG_PAGE_MAGIC 0xD11E /* can be used as WAL version indicator */ typedef struct XLogPageHeaderData { diff --git a/src/include/storage/proc.h b/src/include/storage/proc.h index bf3094f0f7d..120370f459d 100644 --- a/src/include/storage/proc.h +++ b/src/include/storage/proc.h @@ -67,10 +67,11 @@ struct XidCache #define PROC_AFFECTS_ALL_HORIZONS 0x20 /* this proc's xmin must be * included in vacuum horizons * in all databases */ +#define PROC_IN_REPACK 0x40 /* currently REPACK (CONCURRENTLY) */ /* flags reset at EOXact */ #define PROC_VACUUM_STATE_MASK \ - (PROC_IN_VACUUM | PROC_IN_SAFE_IC | PROC_VACUUM_FOR_WRAPAROUND) + (PROC_IN_VACUUM | PROC_IN_SAFE_IC | PROC_VACUUM_FOR_WRAPAROUND | PROC_IN_REPACK) /* * Xmin-related flags. Make sure any flags that affect how the process' Xmin diff --git a/src/include/storage/standby.h b/src/include/storage/standby.h index c63a4f2cc6a..0bd28e270f1 100644 --- a/src/include/storage/standby.h +++ b/src/include/storage/standby.h @@ -124,10 +124,13 @@ typedef enum typedef struct RunningTransactionsData { int xcnt; /* # of xact ids in xids[] */ + int xcnt_repack; /* # of xacts running REPACK + * (CONCURRENTLY). */ int subxcnt; /* # of subxact ids in xids[] */ subxids_array_status subxid_status; TransactionId nextXid; /* xid from TransamVariables->nextXid */ TransactionId oldestRunningXid; /* *not* oldestXmin */ + TransactionId oldestRunningXidLogical; TransactionId oldestDatabaseRunningXid; /* same as above, but within the * current database */ TransactionId latestCompletedXid; /* so we can set xmax */ diff --git a/src/include/storage/standbydefs.h b/src/include/storage/standbydefs.h index 231d251fd51..edad609fa9a 100644 --- a/src/include/storage/standbydefs.h +++ b/src/include/storage/standbydefs.h @@ -47,10 +47,12 @@ typedef struct xl_standby_locks typedef struct xl_running_xacts { int xcnt; /* # of xact ids in xids[] */ + int xcnt_repack; /* # of xacts running REPACK (CONCURRENTLY) */ int subxcnt; /* # of subxact ids in xids[] */ bool subxid_overflow; /* snapshot overflowed, subxids missing */ TransactionId nextXid; /* xid from TransamVariables->nextXid */ TransactionId oldestRunningXid; /* *not* oldestXmin */ + TransactionId oldestRunningXidLogical; TransactionId latestCompletedXid; /* so we can set xmax */ TransactionId xids[FLEXIBLE_ARRAY_MEMBER]; -- 2.47.3 --=-=-=-- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
* [PATCH 4/4] Use singular "datachecksum" consistently in process names @ 2026-05-26 07:56 Kyotaro Horiguchi <[email protected]> 0 siblings, 0 replies; 170+ messages in thread From: Kyotaro Horiguchi @ 2026-05-26 07:56 UTC (permalink / raw) datachecksum_state.c currently refers to processes as both "datachecksum worker/launcher" and "datachecksums launcher". Use the singular "datachecksum" form consistently for process names instead. --- src/backend/access/transam/xlog.c | 4 +- src/backend/postmaster/bgworker.c | 8 +- src/backend/postmaster/datachecksum_state.c | 234 ++++++++++---------- src/backend/postmaster/postmaster.c | 4 +- src/backend/storage/ipc/procsignal.c | 2 +- src/backend/utils/activity/pgstat_backend.c | 4 +- src/backend/utils/activity/pgstat_io.c | 4 +- src/backend/utils/init/miscinit.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/include/miscadmin.h | 10 +- src/include/postmaster/datachecksum_state.h | 30 +-- src/include/postmaster/proctypelist.h | 4 +- src/include/storage/subsystemlist.h | 2 +- 13 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fecdf0d4b05..16f8278809e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9178,7 +9178,7 @@ xlog_redo(XLogReaderState *record) SpinLockRelease(&XLogCtl->info_lck); if (new_state) - EmitAndWaitDataChecksumsBarrier(redo_rec.data_checksum_version); + EmitAndWaitDataChecksumBarrier(redo_rec.data_checksum_version); } else if (info == XLOG_LOGICAL_DECODING_STATUS_CHANGE) { @@ -9256,7 +9256,7 @@ xlog2_redo(XLogReaderState *record) * change to checksum status. Once the barrier has been passed we can * initiate the corresponding processing. */ - EmitAndWaitDataChecksumsBarrier(state.new_checksum_state); + EmitAndWaitDataChecksumBarrier(state.new_checksum_state); } } diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 2e4acad4f00..68256d90cef 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -160,12 +160,12 @@ static const struct .fn_addr = TableSyncWorkerMain }, { - .fn_name = "DataChecksumsWorkerLauncherMain", - .fn_addr = DataChecksumsWorkerLauncherMain + .fn_name = "DataChecksumWorkerLauncherMain", + .fn_addr = DataChecksumWorkerLauncherMain }, { - .fn_name = "DataChecksumsWorkerMain", - .fn_addr = DataChecksumsWorkerMain + .fn_name = "DataChecksumWorkerMain", + .fn_addr = DataChecksumWorkerMain } }; diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 33430147ff2..1715e506cbc 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -26,7 +26,7 @@ * checksums enabled, then disabled them and updated the page while they were * disabled. * - * The DataChecksumsWorker will compile a list of all databases at the start, + * The DataChecksumWorker will compile a list of all databases at the start, * any databases created concurrently will see the in-progress state and will * be checksummed automatically. All databases from the original list MUST BE * successfully processed in order for data checksums to be enabled, the only @@ -99,10 +99,10 @@ * state will also be set to "off". * * Backends transition Bd -> Bi via a procsignalbarrier which is emitted by the - * DataChecksumsWorkerLauncherMain. When all backends have acknowledged the + * DataChecksumWorkerLauncherMain. When all backends have acknowledged the * barrier then Bd will be empty and the next phase can begin: calculating and - * writing data checksums with DataChecksumsWorkers. When the - * DataChecksumsWorker processes have finished writing checksums on all pages, + * writing data checksums with DataChecksumWorkers. When the + * DataChecksumWorker processes have finished writing checksums on all pages, * data checksums are enabled cluster-wide via another procsignalbarrier. * There are four sets of backends where Bd shall be an empty set: * @@ -155,7 +155,7 @@ * found on the -hackers threads linked to in the commit message of this * feature. * - * * Launching datachecksumsworker for resuming operation from the startup + * * Launching datachecksumworker for resuming operation from the startup * process: Currently users have to restart processing manually after a * restart since dynamic background worker cannot be started from the * postmaster. Changing the startup process could make restarting the @@ -280,15 +280,15 @@ static const ChecksumBarrierCondition checksum_barriers[9] = * Signaling between backends calling pg_enable/disable_data_checksums, the * checksums launcher process, and the checksums worker process. * - * This struct is protected by DataChecksumsWorkerLock + * This struct is protected by DataChecksumWorkerLock */ -typedef struct DataChecksumsStateStruct +typedef struct DataChecksumStateStruct { /* * These are set by pg_{enable|disable}_data_checksums, to tell the * launcher what the target state is. */ - DataChecksumsWorkerOperation launch_operation; + DataChecksumWorkerOperation launch_operation; int launch_cost_delay; int launch_cost_limit; @@ -315,7 +315,7 @@ typedef struct DataChecksumsStateStruct * without a lock. If multiple workers, or dynamic cost parameters, are * supported at some point then this would need to be revisited. */ - DataChecksumsWorkerOperation operation; + DataChecksumWorkerOperation operation; int cost_delay; int cost_limit; @@ -329,58 +329,58 @@ typedef struct DataChecksumsStateStruct */ /* result, set by worker before exiting */ - DataChecksumsWorkerResult success; + DataChecksumWorkerResult success; /* * Tells the worker process whether it should also process the shared * catalogs */ bool process_shared_catalogs; -} DataChecksumsStateStruct; +} DataChecksumStateStruct; -/* Shared memory segment for datachecksumsworker */ -static DataChecksumsStateStruct *DataChecksumState; +/* Shared memory segment for datachecksumworker */ +static DataChecksumStateStruct *DataChecksumState; -typedef struct DataChecksumsWorkerDatabase +typedef struct DataChecksumWorkerDatabase { Oid dboid; char *dbname; -} DataChecksumsWorkerDatabase; +} DataChecksumWorkerDatabase; /* Flag set by the interrupt handler */ static volatile sig_atomic_t abort_requested = false; /* - * Have we set the DataChecksumsStateStruct->launcher_running flag? + * Have we set the DataChecksumStateStruct->launcher_running flag? * If we have, we need to clear it before exiting! */ static volatile sig_atomic_t launcher_running = false; /* Are we enabling data checksums, or disabling them? */ -static DataChecksumsWorkerOperation operation; +static DataChecksumWorkerOperation operation; /* Prototypes */ -static void DataChecksumsShmemRequest(void *arg); +static void DataChecksumShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); static List *BuildRelationList(bool temp_relations, bool include_shared); static void FreeDatabaseList(List *dblist); -static DataChecksumsWorkerResult ProcessDatabase(DataChecksumsWorkerDatabase *db); +static DataChecksumWorkerResult ProcessDatabase(DataChecksumWorkerDatabase *db); static bool ProcessAllDatabases(void); static bool ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrategy strategy); static void launcher_cancel_handler(SIGNAL_ARGS); static void WaitForAllTransactionsToFinish(void); -const ShmemCallbacks DataChecksumsShmemCallbacks = { - .request_fn = DataChecksumsShmemRequest, +const ShmemCallbacks DataChecksumShmemCallbacks = { + .request_fn = DataChecksumShmemRequest, }; #define CHECK_FOR_ABORT_REQUEST() \ do { \ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); \ + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); \ if (DataChecksumState->launch_operation != operation) \ abort_requested = true; \ - LWLockRelease(DataChecksumsWorkerLock); \ + LWLockRelease(DataChecksumWorkerLock); \ } while (0) @@ -389,7 +389,7 @@ const ShmemCallbacks DataChecksumsShmemCallbacks = { */ void -EmitAndWaitDataChecksumsBarrier(uint32 state) +EmitAndWaitDataChecksumBarrier(uint32 state) { uint64 barrier; @@ -421,7 +421,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) } /* - * AbsorbDataChecksumsBarrier + * AbsorbDataChecksumBarrier * Generic function for absorbing data checksum state changes * * All procsignalbarriers regarding data checksum state changes are absorbed @@ -430,7 +430,7 @@ EmitAndWaitDataChecksumsBarrier(uint32 state) * used to look up the relevant entry. */ bool -AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) +AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier) { uint32 target_state; int current = data_checksums; @@ -516,7 +516,7 @@ disable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to change data checksum state")); - StartDataChecksumsWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); + StartDataChecksumWorkerLauncher(DISABLE_DATACHECKSUMS, 0, 0); PG_RETURN_VOID(); } @@ -548,27 +548,27 @@ enable_data_checksums(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cost limit must be greater than zero")); - StartDataChecksumsWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); + StartDataChecksumWorkerLauncher(ENABLE_DATACHECKSUMS, cost_delay, cost_limit); PG_RETURN_VOID(); } /***************************************************************************** - * Functionality for running the datachecksumsworker and associated launcher + * Functionality for running the datachecksum worker and associated launcher */ /* - * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * StartDataChecksumWorkerLauncher + * Main entry point for datachecksumworker launcher process * * The main entrypoint for starting data checksums processing for enabling as * well as disabling. */ void -StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit) +StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -580,10 +580,10 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, Assert(cost_delay == 0 && cost_limit == 0); #endif - INJECTION_POINT("datachecksumsworker-startup-delay", NULL); + INJECTION_POINT("datachecksumworker-startup-delay", NULL); /* Store the desired state in shared memory */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->launch_operation = op; DataChecksumState->launch_cost_delay = cost_delay; @@ -592,7 +592,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, /* Is the launcher already running? If so, what is it doing? */ running = DataChecksumState->launcher_running; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * Launch a new launcher process, if it's not running already. @@ -625,7 +625,7 @@ StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumsWorkerLauncherMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "DataChecksumWorkerLauncherMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum launcher"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum launcher"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -715,10 +715,10 @@ ProcessSingleRelationFork(Relation reln, ForkNumber forkNum, BufferAccessStrateg * abortion will bubble up from here. */ Assert(operation == ENABLE_DATACHECKSUMS); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); if (DataChecksumState->launch_operation == DISABLE_DATACHECKSUMS) abort_requested = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (abort_requested) return false; @@ -795,8 +795,8 @@ ProcessSingleRelationByOid(Oid relationId, BufferAccessStrategy strategy) * waiting for it to finish. We have to do this in a separate worker, since * each process can only be connected to one database during its lifetime. */ -static DataChecksumsWorkerResult -ProcessDatabase(DataChecksumsWorkerDatabase *db) +static DataChecksumWorkerResult +ProcessDatabase(DataChecksumWorkerDatabase *db) { BackgroundWorker bgw; BackgroundWorkerHandle *bgw_handle; @@ -804,15 +804,15 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) pid_t pid; char activity[NAMEDATALEN + 64]; - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_FAILED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_FAILED; + LWLockRelease(DataChecksumWorkerLock); memset(&bgw, 0, sizeof(bgw)); bgw.bgw_flags = BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION; bgw.bgw_start_time = BgWorkerStart_RecoveryFinished; snprintf(bgw.bgw_library_name, BGW_MAXLEN, "postgres"); - snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumsWorkerMain"); + snprintf(bgw.bgw_function_name, BGW_MAXLEN, "%s", "DataChecksumWorkerMain"); snprintf(bgw.bgw_name, BGW_MAXLEN, "datachecksum worker"); snprintf(bgw.bgw_type, BGW_MAXLEN, "datachecksum worker"); bgw.bgw_restart_time = BGW_NEVER_RESTART; @@ -830,7 +830,7 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) errmsg("could not start background worker for enabling data checksums in database \"%s\"", db->dbname), errhint("The \"%s\" setting might be too low.", "max_worker_processes")); - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; } status = WaitForBackgroundWorkerStartup(bgw_handle, &pid); @@ -840,17 +840,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * If the worker managed to start, and stop, before we got to waiting * for it we can see a STOPPED status here without it being a failure. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_SUCCESSFUL) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_SUCCESSFUL) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(WARNING, errmsg("could not start background worker for enabling data checksums in database \"%s\"", @@ -862,9 +862,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) * treat it as not an error, else treat as fatal and error out. */ if (DatabaseExists(db->dboid)) - return DATACHECKSUMSWORKER_FAILED; + return DATACHECKSUMWORKER_FAILED; else - return DATACHECKSUMSWORKER_DROPDB; + return DATACHECKSUMWORKER_DROPDB; } /* @@ -886,9 +886,9 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname)); /* Save the pid of the worker so we can signal it later */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = pid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); snprintf(activity, sizeof(activity) - 1, "Waiting for worker in database %s (pid %ld)", db->dbname, (long) pid); @@ -902,17 +902,17 @@ ProcessDatabase(DataChecksumsWorkerDatabase *db) db->dbname), errhint("Restart the database and restart data checksum processing by calling pg_enable_data_checksums().")); - LWLockAcquire(DataChecksumsWorkerLock, LW_SHARED); - if (DataChecksumState->success == DATACHECKSUMSWORKER_ABORTED) + LWLockAcquire(DataChecksumWorkerLock, LW_SHARED); + if (DataChecksumState->success == DATACHECKSUMWORKER_ABORTED) ereport(LOG, errmsg("data checksums processing was aborted in database \"%s\"", db->dbname)); - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); pgstat_report_activity(STATE_IDLE, NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->worker_pid = InvalidPid; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return DataChecksumState->success; } @@ -934,14 +934,14 @@ launcher_exit(int code, Datum arg) if (launcher_running) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->worker_pid != InvalidPid) { ereport(LOG, errmsg("data checksums launcher exiting while worker is still running, signalling worker")); kill(DataChecksumState->worker_pid, SIGTERM); } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -951,10 +951,10 @@ launcher_exit(int code, Datum arg) if (DataChecksumsInProgressOn()) SetDataChecksumsOff(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1044,7 +1044,7 @@ WaitForAllTransactionsToFinish(void) } /* - * DataChecksumsWorkerLauncherMain + * DataChecksumWorkerLauncherMain * * Main function for launching dynamic background workers for processing data * checksums in databases. This function has the bgworker management, with @@ -1052,11 +1052,11 @@ WaitForAllTransactionsToFinish(void) * initiating processing. */ void -DataChecksumsWorkerLauncherMain(Datum arg) +DataChecksumWorkerLauncherMain(Datum arg) { ereport(DEBUG1, - errmsg("background worker \"datachecksums launcher\" started")); + errmsg("background worker \"datachecksum launcher\" started")); pqsignal(SIGTERM, die); pqsignal(SIGINT, launcher_cancel_handler); @@ -1065,19 +1065,19 @@ DataChecksumsWorkerLauncherMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_LAUNCHER; + MyBackendType = B_DATACHECKSUMWORKER_LAUNCHER; init_ps_display(NULL); - INJECTION_POINT("datachecksumsworker-launcher-delay", NULL); + INJECTION_POINT("datachecksumworker-launcher-delay", NULL); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launcher_running) { ereport(LOG, - errmsg("background worker \"datachecksums launcher\" already running, exiting")); + errmsg("background worker \"datachecksum launcher\" already running, exiting")); /* Launcher was already running, let it finish */ - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); return; } @@ -1092,7 +1092,7 @@ DataChecksumsWorkerLauncherMain(Datum arg) DataChecksumState->operation = operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* * The target state can change while we are busy enabling/disabling @@ -1134,13 +1134,13 @@ again: * If the target state changed during processing then it's not a * failure, so restart processing instead. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto done; } - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_RESOURCES), errmsg("unable to enable data checksums in cluster")); @@ -1183,14 +1183,14 @@ done: * while we were running. In that case we will have to start all over * again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if (DataChecksumState->launch_operation != operation) { DataChecksumState->operation = DataChecksumState->launch_operation; operation = DataChecksumState->launch_operation; DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay; DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); goto again; } @@ -1199,7 +1199,7 @@ done: launcher_running = false; DataChecksumState->launcher_running = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } /* @@ -1217,9 +1217,9 @@ ProcessAllDatabases(void) int cumulative_total = 0; /* Set up so first run processes shared catalogs, not once in every db */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = true; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); /* Get a list of all databases to process */ WaitForAllTransactionsToFinish(); @@ -1254,18 +1254,18 @@ ProcessAllDatabases(void) pgstat_progress_update_multi_param(6, index, vals); } - foreach_ptr(DataChecksumsWorkerDatabase, db, DatabaseList) + foreach_ptr(DataChecksumWorkerDatabase, db, DatabaseList) { - DataChecksumsWorkerResult result; + DataChecksumWorkerResult result; result = ProcessDatabase(db); #ifdef USE_INJECTION_POINTS /* Allow a test process to alter the result of the operation */ - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fail-db-result")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fail-db-result")) { - result = DATACHECKSUMSWORKER_FAILED; - INJECTION_POINT_CACHED("datachecksumsworker-fail-db-result", + result = DATACHECKSUMWORKER_FAILED; + INJECTION_POINT_CACHED("datachecksumworker-fail-db-result", db->dbname); } #endif @@ -1273,7 +1273,7 @@ ProcessAllDatabases(void) pgstat_progress_update_param(PROGRESS_DATACHECKSUMS_DBS_DONE, ++cumulative_total); - if (result == DATACHECKSUMSWORKER_FAILED) + if (result == DATACHECKSUMWORKER_FAILED) { /* * Disable checksums on cluster, because we failed one of the @@ -1285,7 +1285,7 @@ ProcessAllDatabases(void) errmsg("data checksums failed to get enabled in all databases, aborting"), errhint("The server log might have more information on the cause of the error.")); } - else if (result == DATACHECKSUMSWORKER_ABORTED || abort_requested) + else if (result == DATACHECKSUMWORKER_ABORTED || abort_requested) { /* Abort flag set, so exit the whole process */ return false; @@ -1295,9 +1295,9 @@ ProcessAllDatabases(void) * When one database has completed, it will have done shared catalogs * so we don't have to process them again. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); DataChecksumState->process_shared_catalogs = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); } FreeDatabaseList(DatabaseList); @@ -1308,14 +1308,14 @@ ProcessAllDatabases(void) } /* - * DataChecksumsShmemRequest - * Request datachecksumsworker-related shared memory + * DataChecksumShmemRequest + * Request datachecksumworker-related shared memory */ static void -DataChecksumsShmemRequest(void *arg) +DataChecksumShmemRequest(void *arg) { - ShmemRequestStruct(.name = "DataChecksumsWorker Data", - .size = sizeof(DataChecksumsStateStruct), + ShmemRequestStruct(.name = "DataChecksumWorker Data", + .size = sizeof(DataChecksumStateStruct), .ptr = (void **) &DataChecksumState, ); } @@ -1370,7 +1370,7 @@ DatabaseExists(Oid dboid) * BuildDatabaseList * Compile a list of all currently available databases in the cluster * - * This creates the list of databases for the datachecksumsworker workers to + * This creates the list of databases for the datachecksum workers to * add checksums to. If the caller wants to ensure that no concurrently * running CREATE DATABASE calls exist, this needs to be preceded by a call * to WaitForAllTransactionsToFinish(). @@ -1393,11 +1393,11 @@ BuildDatabaseList(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { Form_pg_database pgdb = (Form_pg_database) GETSTRUCT(tup); - DataChecksumsWorkerDatabase *db; + DataChecksumWorkerDatabase *db; oldctx = MemoryContextSwitchTo(ctx); - db = (DataChecksumsWorkerDatabase *) palloc0(sizeof(DataChecksumsWorkerDatabase)); + db = (DataChecksumWorkerDatabase *) palloc0(sizeof(DataChecksumWorkerDatabase)); db->dboid = pgdb->oid; db->dbname = pstrdup(NameStr(pgdb->datname)); @@ -1421,7 +1421,7 @@ FreeDatabaseList(List *dblist) if (!dblist) return; - foreach_ptr(DataChecksumsWorkerDatabase, db, dblist) + foreach_ptr(DataChecksumWorkerDatabase, db, dblist) { if (db->dbname != NULL) pfree(db->dbname); @@ -1496,7 +1496,7 @@ BuildRelationList(bool temp_relations, bool include_shared) } /* - * DataChecksumsWorkerMain + * DataChecksumWorkerMain * * Main function for enabling checksums in a single database. This is the * function set as the bgw_function_name in the dynamic background worker @@ -1507,7 +1507,7 @@ BuildRelationList(bool temp_relations, bool include_shared) * existing temporary relations with data checksums. */ void -DataChecksumsWorkerMain(Datum arg) +DataChecksumWorkerMain(Datum arg) { Oid dboid = DatumGetObjectId(arg); List *RelationList = NIL; @@ -1526,7 +1526,7 @@ DataChecksumsWorkerMain(Datum arg) BackgroundWorkerUnblockSignals(); - MyBackendType = B_DATACHECKSUMSWORKER_WORKER; + MyBackendType = B_DATACHECKSUMWORKER_WORKER; init_ps_display(NULL); BackgroundWorkerInitializeConnectionByOid(dboid, InvalidOid, @@ -1606,7 +1606,7 @@ DataChecksumsWorkerMain(Datum arg) * to reflect the new values and signal that the access strategy needs * to be refreshed. */ - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); if ((DataChecksumState->launch_cost_delay != DataChecksumState->cost_delay) || (DataChecksumState->launch_cost_limit != DataChecksumState->cost_limit)) { @@ -1620,7 +1620,7 @@ DataChecksumsWorkerMain(Datum arg) } else costs_updated = false; - LWLockRelease(DataChecksumsWorkerLock); + LWLockRelease(DataChecksumWorkerLock); if (costs_updated) { @@ -1634,9 +1634,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(DEBUG1, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1669,7 +1669,7 @@ DataChecksumsWorkerMain(Datum arg) list_free(CurrentTempTables); #ifdef USE_INJECTION_POINTS - if (IS_INJECTION_POINT_ATTACHED("datachecksumsworker-fake-temptable-wait")) + if (IS_INJECTION_POINT_ATTACHED("datachecksumworker-fake-temptable-wait")) { /* Make sure to just cause one retry */ if (!retried && numleft == 0) @@ -1677,7 +1677,7 @@ DataChecksumsWorkerMain(Datum arg) numleft = 1; retried = true; - INJECTION_POINT_CACHED("datachecksumsworker-fake-temptable-wait", NULL); + INJECTION_POINT_CACHED("datachecksumworker-fake-temptable-wait", NULL); } } #endif @@ -1706,9 +1706,9 @@ DataChecksumsWorkerMain(Datum arg) if (aborted || abort_requested) { - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_ABORTED; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_ABORTED; + LWLockRelease(DataChecksumWorkerLock); ereport(LOG, errmsg("data checksum processing aborted in database OID %u", dboid)); @@ -1721,7 +1721,7 @@ DataChecksumsWorkerMain(Datum arg) /* worker done */ pgstat_progress_end_command(); - LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE); - DataChecksumState->success = DATACHECKSUMSWORKER_SUCCESSFUL; - LWLockRelease(DataChecksumsWorkerLock); + LWLockAcquire(DataChecksumWorkerLock, LW_EXCLUSIVE); + DataChecksumState->success = DATACHECKSUMWORKER_SUCCESSFUL; + LWLockRelease(DataChecksumWorkerLock); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 90c7c4528e8..0debcb18991 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -3010,8 +3010,8 @@ PostmasterStateMachine(void) /* also add data checksums processes */ remainMask = btmask_add(remainMask, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER); + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER); /* All types should be included in targetMask or remainMask */ Assert((remainMask.mask | targetMask.mask) == BTYPE_MASK_ALL.mask); diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 1397f65f67b..0e0c7acf0df 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -596,7 +596,7 @@ ProcessProcSignalBarrier(void) case PROCSIGNAL_BARRIER_CHECKSUM_ON: case PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF: case PROCSIGNAL_BARRIER_CHECKSUM_OFF: - processed = AbsorbDataChecksumsBarrier(type); + processed = AbsorbDataChecksumBarrier(type); break; } diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 73461c9bca5..bccf6f27121 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -381,8 +381,8 @@ pgstat_tracks_backend_bktype(BackendType bktype) case B_CHECKPOINTER: case B_IO_WORKER: case B_STARTUP: - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: return false; case B_AUTOVAC_WORKER: diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c index 13a5d8e6440..49f0466040b 100644 --- a/src/backend/utils/activity/pgstat_io.c +++ b/src/backend/utils/activity/pgstat_io.c @@ -362,8 +362,8 @@ pgstat_tracks_io_bktype(BackendType bktype) case B_LOGGER: return false; - case B_DATACHECKSUMSWORKER_LAUNCHER: - case B_DATACHECKSUMSWORKER_WORKER: + case B_DATACHECKSUMWORKER_LAUNCHER: + case B_DATACHECKSUMWORKER_WORKER: case B_AUTOVAC_LAUNCHER: case B_AUTOVAC_WORKER: case B_BACKEND: diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 7ffc808073a..42a0e896f1d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -846,7 +846,7 @@ InitializeSessionUserIdStandalone(void) */ Assert(!IsUnderPostmaster || AmAutoVacuumWorkerProcess() || AmLogicalSlotSyncWorkerProcess() || AmBackgroundWorkerProcess() || - AmDataChecksumsWorkerProcess()); + AmDataChecksumWorkerProcess()); /* call only once */ Assert(!OidIsValid(AuthenticatedUserId)); diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 2460e550f96..9acd984da42 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -921,7 +921,7 @@ InitPostgres(const char *in_dbname, Oid dboid, errhint("You should immediately run CREATE USER \"%s\" SUPERUSER;.", username != NULL ? username : "postgres"))); } - else if (AmBackgroundWorkerProcess() || AmDataChecksumsWorkerProcess()) + else if (AmBackgroundWorkerProcess() || AmDataChecksumWorkerProcess()) { if (username == NULL && !OidIsValid(useroid)) { diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 7de0a115402..bc538ac212e 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -370,8 +370,8 @@ typedef enum BackendType B_WAL_SUMMARIZER, B_WAL_WRITER, - B_DATACHECKSUMSWORKER_LAUNCHER, - B_DATACHECKSUMSWORKER_WORKER, + B_DATACHECKSUMWORKER_LAUNCHER, + B_DATACHECKSUMWORKER_WORKER, /* * Logger is not connected to shared memory and does not have a PGPROC @@ -398,9 +398,9 @@ extern PGDLLIMPORT BackendType MyBackendType; #define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER) #define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER) #define AmIoWorkerProcess() (MyBackendType == B_IO_WORKER) -#define AmDataChecksumsWorkerProcess() \ - (MyBackendType == B_DATACHECKSUMSWORKER_LAUNCHER || \ - MyBackendType == B_DATACHECKSUMSWORKER_WORKER) +#define AmDataChecksumWorkerProcess() \ + (MyBackendType == B_DATACHECKSUMWORKER_LAUNCHER || \ + MyBackendType == B_DATACHECKSUMWORKER_WORKER) #define AmSpecialWorkerProcess() \ (AmAutoVacuumLauncherProcess() || \ diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index 2a1ae10d55d..4426f9dc622 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,12 +17,12 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation +/* Possible operations the DataChecksumWorker can perform */ +typedef enum DataChecksumWorkerOperation { ENABLE_DATACHECKSUMS, DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; +} DataChecksumWorkerOperation; /* * Possible states for a database entry which has been processed. Exported @@ -30,25 +30,25 @@ typedef enum DataChecksumsWorkerOperation */ typedef enum { - DATACHECKSUMSWORKER_SUCCESSFUL = 0, - DATACHECKSUMSWORKER_ABORTED, - DATACHECKSUMSWORKER_FAILED, - DATACHECKSUMSWORKER_DROPDB, -} DataChecksumsWorkerResult; + DATACHECKSUMWORKER_SUCCESSFUL = 0, + DATACHECKSUMWORKER_ABORTED, + DATACHECKSUMWORKER_FAILED, + DATACHECKSUMWORKER_DROPDB, +} DataChecksumWorkerResult; /* Prototypes for data checksum state manipulation */ -bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); -void EmitAndWaitDataChecksumsBarrier(uint32 state); +bool AbsorbDataChecksumBarrier(ProcSignalBarrierType barrier); +void EmitAndWaitDataChecksumBarrier(uint32 state); /* Prototypes for data checksum background worker */ /* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); +void StartDataChecksumWorkerLauncher(DataChecksumWorkerOperation op, + int cost_delay, + int cost_limit); /* Background worker entrypoints */ -void DataChecksumsWorkerLauncherMain(Datum arg); -void DataChecksumsWorkerMain(Datum arg); +void DataChecksumWorkerLauncherMain(Datum arg); +void DataChecksumWorkerMain(Datum arg); #endif /* DATACHECKSUM_STATE_H */ diff --git a/src/include/postmaster/proctypelist.h b/src/include/postmaster/proctypelist.h index b3477e6f17a..ec84860a613 100644 --- a/src/include/postmaster/proctypelist.h +++ b/src/include/postmaster/proctypelist.h @@ -38,8 +38,8 @@ PG_PROCTYPE(B_BACKEND, "backend", gettext_noop("client backend"), BackendMain, t PG_PROCTYPE(B_BG_WORKER, "bgworker", gettext_noop("background worker"), BackgroundWorkerMain, true) PG_PROCTYPE(B_BG_WRITER, "bgwriter", gettext_noop("background writer"), BackgroundWriterMain, true) PG_PROCTYPE(B_CHECKPOINTER, "checkpointer", gettext_noop("checkpointer"), CheckpointerMain, true) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) -PG_PROCTYPE(B_DATACHECKSUMSWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_LAUNCHER, "checksums", gettext_noop("datachecksum launcher"), NULL, false) +PG_PROCTYPE(B_DATACHECKSUMWORKER_WORKER, "checksums", gettext_noop("datachecksum worker"), NULL, false) PG_PROCTYPE(B_DEAD_END_BACKEND, "backend", gettext_noop("dead-end client backend"), BackendMain, true) PG_PROCTYPE(B_INVALID, "postmaster", gettext_noop("unrecognized"), NULL, false) PG_PROCTYPE(B_IO_WORKER, "ioworker", gettext_noop("io worker"), IoWorkerMain, true) diff --git a/src/include/storage/subsystemlist.h b/src/include/storage/subsystemlist.h index 9ad619080be..e9bd1ce0681 100644 --- a/src/include/storage/subsystemlist.h +++ b/src/include/storage/subsystemlist.h @@ -84,7 +84,7 @@ PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks) #endif PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks) PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks) -PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks) +PG_SHMEM_SUBSYSTEM(DataChecksumShmemCallbacks) /* AIO subsystem. This delegates to the method-specific callbacks */ PG_SHMEM_SUBSYSTEM(AioShmemCallbacks) -- 2.47.3 ----Next_Part(Thu_May_28_12_16_22_2026_214)---- ^ permalink raw reply [nested|flat] 170+ messages in thread
end of thread, other threads:[~2026-05-26 07:56 UTC | newest] Thread overview: 170+ messages (download: mbox mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2026-03-17 19:22 [PATCH 7/7] Teach snapshot builder to skip transactions running REPACK (CONCURRENTLY). Antonin Houska <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[email protected]> 2026-05-26 07:56 [PATCH 4/4] Use singular "datachecksum" consistently in process names Kyotaro Horiguchi <[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