Segfault on ANALYZE in SERIALIZABLE isolation - Mailing list pgsql-hackers

From Joe Wildish
Subject Segfault on ANALYZE in SERIALIZABLE isolation
Date
Msg-id 4EA80A20-E9BF-49F1-9F01-5B66CAB21453@elusive.cx
Whole thread Raw
Responses Re: Segfault on ANALYZE in SERIALIZABLE isolation  (Sergei Kornilov <sk@zsrv.org>)
List pgsql-hackers
Hackers,

Head of master is giving me a segfault on running ANALYZE when isolation mode is SERIALIZABLE.

My configure:

export CFLAGS="-g"
export LDFLAGS="-L/usr/local/opt/readline/lib"
export CPPFLAGS="-I/usr/local/opt/readline/include"

./configure \
   --prefix=/Users/joe/Development/tmp/pg \
   --enable-cassert \
   --enable-debug \
   --with-readline

To reproduce:

[joe@oberon pg]$ ./bin/initdb -D $(pwd)/data
The files belonging to this database system will be owned by user "joe".
This user must also own the server process.

The database cluster will be initialized with locale "en_GB.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

creating directory /Users/joe/Development/tmp/pg/data ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default timezone ... Europe/London
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok

initdb: warning: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

    ./bin/pg_ctl -D /Users/joe/Development/tmp/pg/data -l logfile start

[joe@oberon pg]$ ./bin/pg_ctl -D /Users/joe/Development/tmp/pg/data -l logfile start && ./bin/psql -d postgres
waiting for server to start.... done
server started
psql (12devel)
Type "help" for help.

[local] joe@postgres=# ALTER SYSTEM SET DEFAULT_TRANSACTION_ISOLATION TO 'serializable';
ALTER SYSTEM
[local] joe@postgres=# \q
[joe@oberon pg]$ ./bin/pg_ctl -D /Users/joe/Development/tmp/pg/data -l logfile restart && ./bin/psql -d postgres
waiting for server to shut down.... done
server stopped
waiting for server to start.... done
server started
psql (12devel)
Type "help" for help.

[local] joe@postgres=# ANALYZE;
server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
 @!>


Logline:
2019-05-18 15:10:06.831 BST [45177] LOG:  server process (PID 45186) was terminated by signal 11: Segmentation fault:
11


Cheers,
-Joe





pgsql-hackers by date:

Previous
From: Dean Rasheed
Date:
Subject: Re: Multivariate MCV stats can leak data to unprivileged users
Next
From: Sergei Kornilov
Date:
Subject: Re: Segfault on ANALYZE in SERIALIZABLE isolation