]> granicus.if.org Git - postgresql/commitdiff
Fix possible null pointer dereference or invalid warning message.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 30 Apr 2017 16:21:02 +0000 (12:21 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 30 Apr 2017 16:21:02 +0000 (12:21 -0400)
Thinko in commit de4389712: this warning message references the wrong
"LogicalRepWorker *" variable.  This would often result in a core dump,
but if it didn't, the message would show the wrong subscription OID.

In passing, adjust the message text to format a subscription OID
similarly to how that's done elsewhere in the function; and fix
grammatical issues in some nearby messages.

Per Coverity testing.

src/backend/replication/logical/launcher.c

index cf0cb37acc6e20d35554e9a1787b3b755324fccc..f5058d5a9acdfa09b98f097a6c9ffe65415d68aa 100644 (file)
@@ -315,8 +315,8 @@ retry:
                                                                                   wal_receiver_timeout))
                        {
                                elog(WARNING,
-                                        "logical replication worker for subscription \"%d\" took too long to start; canceled",
-                                        worker->subid);
+                                        "logical replication worker for subscription %u took too long to start; canceled",
+                                        w->subid);
 
                                logicalrep_worker_cleanup(w);
                                did_cleanup = true;
@@ -347,7 +347,7 @@ retry:
                LWLockRelease(LogicalRepWorkerLock);
                ereport(WARNING,
                                (errcode(ERRCODE_CONFIGURATION_LIMIT_EXCEEDED),
-                                errmsg("out of logical replication workers slots"),
+                                errmsg("out of logical replication worker slots"),
                                 errhint("You might need to increase max_logical_replication_workers.")));
                return;
        }
@@ -393,7 +393,7 @@ retry:
        {
                ereport(WARNING,
                                (errcode(ERRCODE_CONFIGURATION_LIMIT_EXCEEDED),
-                                errmsg("out of background workers slots"),
+                                errmsg("out of background worker slots"),
                                 errhint("You might need to increase max_worker_processes.")));
                return;
        }