pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Justin Pryzby <pryzby@telsasoft.com>
Cc: pgsql-hackers@postgresql.org
Subject: Re: PG10.1 autovac killed building extended stats
Date: Fri, 17 Nov 2017 13:36:00 -0300
Message-ID: <20171117163600.d7zsm2odaizikdhs@alvherre.pgsql> (raw)
In-Reply-To: <20171117152714.GA25754@telsasoft.com>

Justin Pryzby wrote:

> Core was generated by `postgres: autovacuum worker process   gtt             '.
> Program terminated with signal 11, Segmentation fault.
> #0  statext_ndistinct_build (totalrows=300, numrows=300, rows=0x21df3e8, attrs=<value optimized out>, stats=0x0) at mvdistinct.c:103
> 103                                     item->attrs = bms_add_member(item->attrs,
> 
> (gdb) p stats
> $5 = (VacAttrStats **) 0x0
> => This is an error, no ??

Not necessarily, but then I think this previous code is busted:

        /*
         * Check if we can build these stats based on the column analyzed. If
         * not, report this fact (except in autovacuum) and move on.
         */
        stats = lookup_var_attr_stats(onerel, stat->columns,
                                      natts, vacattrstats);
        if (!stats && !IsAutoVacuumWorkerProcess())
        {
            ereport(WARNING,
                    (errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
                     errmsg("statistics object \"%s.%s\" could not be computed for relation \"%s.%s\"",
                            stat->schema, stat->name,
                            get_namespace_name(onerel->rd_rel->relnamespace),
                            RelationGetRelationName(onerel)),
                     errtable(onerel)));
            continue;
        }

If I recall things correctly, the "continue" should be executed
regardless of IsAutoVacuumWorkerProcess() (only the log should be
conditional on that).  I'm not sure how I arrived at the current coding,
which I added in bf2a691e02d7 -- probably just fuzzy thinking.

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services




view thread (6+ messages)  latest in thread

Message-ID: <20171117163600.d7zsm2odaizikdhs@alvherre.pgsql>
Permalink:  ../20171117163600.d7zsm2odaizikdhs@alvherre.pgsql/
Also on:    postgresql.org/message-id/20171117163600.d7zsm2odaizikdhs@alvherre.pgsql

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: alvherre@alvh.no-ip.org, pryzby@telsasoft.com
  Subject: Re: PG10.1 autovac killed building extended stats
  In-Reply-To: <20171117163600.d7zsm2odaizikdhs@alvherre.pgsql>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox