The following bug has been logged on the website:
Bug reference: 16132
Logged by: James Inform
Email address: james.inform@pharmapp.de
PostgreSQL version: 12.1
Operating system: Mac & Ubuntu 18.04 LTS
Description:
HI!
I am not sure if my issue is related to PostgreSQL or to the PLV8 extension.
So I just post in case.
I encountered the following severe issue. I am running PostgreSQL 12.1 on
Ubuntu. Postgresql is build from source by myself, but the same issue
appears when I am using Pg12.1 with Postgresapp on Mac.
(www.postgresapp.com)
I am using PLV8 Version 2.3.13.
Steps to reproduce:
1. Create a new database:
create database mytest;
2. Create PLV8 extension
create extension plv8;
3. Create a simple PLV8 function
CREATE OR REPLACE FUNCTION plv8_require()
RETURNS void
LANGUAGE plv8
AS
$function$
var test = 0;
$function$
;
4. Log out and then in again with a new session to the new database
mytest;
5. Run the following set command
SET plv8.start_proc = plv8_require;
6. Run this simple plv8 script
do
$$
plv8.elog(NOTICE,'test');
$$ language plv8
;
7. Now the server goes down with the following log information:
Received signal 4 <unknown> 000107b765be
==== C stack trace ===============================
[0x00010838ed74]
[0x7fff5a988f5a]
[0x000107ab4888]
[0x000107b7383c]
[0x000104b07fdc]
[0x000104b09091]
[0x000104699360]
[0x0001049491ac]
[0x00010733dfdf]
[0x000104948d1d]
[0x00010494871d]
[0x000104947a51]
[0x000104947121]
[0x000104944810]
[0x000104941df7]
[0x00010488f3ff]
[0x00010488e80d]
[0x00010488d76a]
[0x00010488b37f]
[0x00010479b5d9]
[0x7fff5a67a015]
[end of stack trace]
2019-11-22 17:29:05 CET [50424]: [13-1] user=,db=,app=,client= LOG: server
process (PID 15664) was terminated by signal 4: Illegal instruction: 4
2019-11-22 17:29:05 CET [50424]: [14-1] user=,db=,app=,client= DETAIL:
Failed process was running: do
$$
plv8.elog(NOTICE,'test');
$$ language plv8
2019-11-22 17:29:05 CET [50424]: [15-1] user=,db=,app=,client= LOG:
terminating any other active server processes
2019-11-22 17:29:05 CET [11274]: [1-1] user=,db=,app=,client= WARNING:
terminating connection because of crash of another server process
2019-11-22 17:29:05 CET [11274]: [2-1] user=,db=,app=,client= DETAIL: The
postmaster has commanded this server process to roll back the current
transaction and exit, because another server process exited abnormally and
possibly corrupted shared memory.
2019-11-22 17:29:05 CET [11274]: [3-1] user=,db=,app=,client= HINT: In a
moment you should be able to reconnect to the database and repeat your
command.
2019-11-22 17:29:05 CET [50424]: [16-1] user=,db=,app=,client= LOG: all
server processes terminated; reinitializing
2019-11-22 17:29:05 CET [15806]: [1-1]
user=[unknown],db=[unknown],app=[unknown],client=127.0.0.1 LOG: connection
received: host=127.0.0.1 port=55983
2019-11-22 17:29:05 CET [15805]: [1-1] user=,db=,app=,client= LOG: database
system was interrupted; last known up at 2019-11-22 16:32:06 CET
2019-11-22 17:29:05 CET [15806]: [2-1]
user=postgres,db=inst,app=[unknown],client=127.0.0.1 FATAL: the database
system is in recovery mode
2019-11-22 17:29:05 CET [15807]: [1-1]
user=[unknown],db=[unknown],app=[unknown],client=127.0.0.1 LOG: connection
received: host=127.0.0.1 port=55984
2019-11-22 17:29:05 CET [15807]: [2-1]
user=postgres,db=inst,app=[unknown],client=127.0.0.1 FATAL: the database
system is in recovery mode
2019-11-22 17:29:05 CET [15808]: [1-1]
user=[unknown],db=[unknown],app=[unknown],client=127.0.0.1 LOG: connection
received: host=127.0.0.1 port=55985
2019-11-22 17:29:05 CET [15808]: [2-1]
user=postgres,db=inst,app=[unknown],client=127.0.0.1 FATAL: the database
system is in recovery mode
2019-11-22 17:29:05 CET [15809]: [1-1]
user=[unknown],db=[unknown],app=[unknown],client=127.0.0.1 LOG: connection
received: host=127.0.0.1 port=55986
2019-11-22 17:29:05 CET [15809]: [2-1]
user=postgres,db=inst,app=[unknown],client=127.0.0.1 FATAL: the database
system is in recovery mode
2019-11-22 17:29:05 CET [15810]: [1-1]
user=[unknown],db=[unknown],app=[unknown],client=127.0.0.1 LOG: connection
received: host=127.0.0.1 port=55987
2019-11-22 17:29:05 CET [15810]: [2-1]
user=postgres,db=inst,app=[unknown],client=127.0.0.1 FATAL: the database
system is in recovery mode
2019-11-22 17:29:05 CET [15811]: [1-1]
user=[unknown],db=[unknown],app=[unknown],client=127.0.0.1 LOG: connection
received: host=127.0.0.1 port=55988
2019-11-22 17:29:05 CET [15811]: [2-1]
user=postgres,db=inst,app=[unknown],client=127.0.0.1 FATAL: the database
system is in recovery mode
2019-11-22 17:29:06 CET [15805]: [2-1] user=,db=,app=,client= LOG: database
system was not properly shut down; automatic recovery in progress
2019-11-22 17:29:07 CET [15805]: [3-1] user=,db=,app=,client= LOG: redo
starts at 4E/765C06D0
2019-11-22 17:29:07 CET [15805]: [4-1] user=,db=,app=,client= LOG: invalid
record length at 4E/765C07B8: wanted 24, got 0
2019-11-22 17:29:07 CET [15805]: [5-1] user=,db=,app=,client= LOG: redo
done at 4E/765C0780
2019-11-22 17:29:07 CET [15805]: [6-1] user=,db=,app=,client= LOG:
checkpoint starting: end-of-recovery immediate
2019-11-22 17:29:07 CET [15805]: [7-1] user=,db=,app=,client= LOG:
checkpoint complete: wrote 0 buffers (0.0%); 0 WAL file(s) added, 0 removed,
0 recycled; write=0.029 s, sync=0.000 s, total=0.033 s; sync files=0,
longest=0.000 s, average=0.000 s; distance=0 kB, estimate=0 kB
2019-11-22 17:29:07 CET [50424]: [17-1] user=,db=,app=,client= LOG:
database system is ready to accept connections
2019-11-22 17:29:17 CET [15817]: [1-1] user=,db=,app=,client= LOG:
autoprewarm successfully prewarmed 524196 of 524196 previously-loaded blocks