3

在 psql 中定义 PL/Python 函数时,出现错误:

server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.

功能:

CREATE OR REPLACE FUNCTION pymax (a integer, b integer) RETURNS integer AS
$$
    if a > b:
      return a
    return b
$$ LANGUAGE plpython3u;

PostgreSQL 日志:

2018-01-16 17:17:57.296 IST [8164] LOG:  server process (PID 5128) was terminated by exception 0xC0000409
2018-01-16 17:17:57.296 IST [8164] DETAIL:  Failed process was running: CREATE OR REPLACE FUNCTION pymax (a integer, b integer) RETURNS integer AS
        $$
            if a > b:
              return a
            return b
        $$ LANGUAGE plpython3u;
2018-01-16 17:17:57.296 IST [8164] HINT:  See C include file "ntstatus.h" for a description of the hexadecimal value.
2018-01-16 17:17:57.296 IST [8164] LOG:  terminating any other active server processes
2018-01-16 17:17:57.300 IST [5484] WARNING:  terminating connection because of crash of another server process
2018-01-16 17:17:57.300 IST [5484] 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.
2018-01-16 17:17:57.300 IST [5484] HINT:  In a moment you should be able to reconnect to the database and repeat your command.
2018-01-16 17:17:57.324 IST [920] FATAL:  the database system is in recovery mode
2018-01-16 17:17:57.342 IST [8164] LOG:  all server processes terminated; reinitializing
2018-01-16 17:17:57.373 IST [5700] LOG:  database system was interrupted; last known up at 2018-01-16 17:17:41 IST
2018-01-16 17:17:57.993 IST [5700] LOG:  database system was not properly shut down; automatic recovery in progress
2018-01-16 17:17:58.022 IST [5700] LOG:  redo starts at 0/279BA58
2018-01-16 17:17:58.023 IST [5700] LOG:  invalid record length at 0/279BA90: wanted 24, got 0
2018-01-16 17:17:58.023 IST [5700] LOG:  redo done at 0/279BA58
2018-01-16 17:17:58.247 IST [8164] LOG:  database system is ready to accept connections
4

0 回答 0