At Wed, 27 Oct 2021 14:26:11 -0500, Justin Pryzby <pryzby@telsasoft.com> wrote in
> On Wed, Oct 27, 2021 at 07:05:10PM +0000, Bossart, Nathan wrote:
> > My vote is to just change it to
> >
> > ereport(WARNING,
> > (errmsg("autovacuum worker took too long to start; canceled")));
> >
> > and call it a day. If we wanted to add errdetail(), I think we should
> > make sure it is providing useful context, but I'm not sure what that
> > might look like.
>
> I think that's fine.
+1
> Note that the backend_type is illuminating for those who use CSV logs, or use
> P13+ and log_line_prefix += %b (see 70a7b4776).
>
> session_line | 1
> error_severity | WARNING
> message | worker took too long to start; canceled
> backend_type | autovacuum launcher
Yeah, the additional "autovacuum" is not noisy at all even in that
context. Some other messages are prefixed with "autovacuum".
"could not fork autovacuum worker process: %m"
"autovacuum worker started without a worker entry"
By a quick look all occurances of "laucher" are prefixed with
"autovacuum" or "logical replcaion", which seems fine.
As a related topic, autovacuum.c has another use of bare "worker"s.
> tmpcxt = AllocSetContextCreate(CurrentMemoryContext,
> "Start worker tmp cxt",
> ALLOCSET_DEFAULT_SIZES);
> AutovacMemCxt = AllocSetContextCreate(TopMemoryContext,
> "AV worker",
> ALLOCSET_DEFAULT_SIZES);
I'm not sure the former needs to be fixed, but the latter is actually
visible to users via pg_log_backend_memory_contexts().
LOG: level: 1; AV worker: 8192 total in 1 blocks; 7928 free (0 chunks); 264 used
regards.
--
Kyotaro Horiguchi
NTT Open Source Software Center