Hello,

On 21.02.2019 10:05, Kyotaro HORIGUCHI wrote:
Done. This verison 16 looks as if the moving and splitting were
not happen. Major changes are:

  - Restored old pgstats_* names. This largily shrinks the patch
    size to less than a half lines of v15.  More than that, it
    gets easier to examine differences. (checkpointer.c and
    bgwriter.c have a bit stale comments but it is an issue for
    later.)

  - Removed "oneshot" feature at all. This simplifies pgstat API
    and let this patch far less simple.

  - Moved StatsLock to LWTRANCHE_STATS, which is not necessary to
    be in the main tranche.

  - Fixed several bugs revealed by the shrinked size of the patch.

I run regression tests. Unfortunately tests didn't pass, failed test is 'rangetypes':

rangetypes ... FAILED (test process exited with exit code 2)

It seems to me that an autovacuum process terminates because of segfault.

Segfault occurs within get_pgstat_tabentry_relid(). If I'm not mistaken, somehow 'dbentry' hasn't valid pointer anymore.

'dbentry' is get in the line in do_autovacuum():

dbentry = pgstat_fetch_stat_dbentry(MyDatabaseId);

'dbentry' becomes invalid after calling pgstat_vacuum_stat().

--
Arthur Zakirov
Postgres Professional: http://www.postgrespro.com
Russian Postgres Company

Reply via email to