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;
    }