psycopg2.errors.ConnectionFailure:SSL SYSCALL错误:检测到EOF

时间:2019-07-24 07:28:15

标签: python postgresql jenkins

我有一个Jenkins作业(每3小时运行一次),它将数据从远程服务器移植到我的数据仓库,通常需要大约2个小时才能完成,最近又收到以下错误消息。

Jenkins作业通过SSH连接远程服务器,并通过Python脚本(sql_runner_procedure)调用PostgreSQL过程(load_foreign_schema_postgresql)。

我创建了另一个Jenkins作业(每2分钟运行一次),以移植特定的表,因为我们希望该表经常更新,因此该作业的调用也相同,并且上述作业连续运行了几次,并且在某些时间表上由于上述错误而失败,因此任何人都可以帮助我弄清楚为什么会发生这种情况以及如何解决?

错误:

+ python -u sql_runner_procedure.py /home/etl/bi/datawrapper/data_loader.sql
##################Executing############################## 

CALL load_foreign_schema_postgresql('odoo_server', 'public', 'dl', 'ft', log_table_schema_name := 'log',
                                    log_table_name := 'fr_table'
--     ,recreate_indices := FALSE
    );
Traceback (most recent call last):
  File "sql_runner_procedure.py", line 23, in <module>
    pg_cur.execute(sql)
psycopg2.errors.ConnectionFailure: SSL SYSCALL error: EOF detected
CONTEXT:  remote SQL command: START TRANSACTION ISOLATION LEVEL REPEATABLE READ
SQL statement "CREATE TABLE dl.account_account_type AS
                    SELECT *
                    FROM ft.account_account_type;"
PL/pgSQL function load_foreign_schema_postgresql(text,text,text,text,boolean,boolean,text,text) line 151 at EXECUTE

Process leaked file descriptors. See https://jenkins.io/redirect/troubleshooting/process-leaked-file-descriptors for more information
Build step 'Execute shell' marked build as failure
Finished: FAILURE

我正在运行Jenkins Job,里面的构建脚本是这个

First connect the server with SSH then,

        export PYTHONPATH=/home/etl/bi/
        cd /home/etl/bi/
            python -u sql_runner_procedure.py /home/etl/bi/datawrapper/data_loader.sql

        kill $(ps -ef | grep [m]ysql_tunnel | awk '{print $2}')

1 个答案:

答案 0 :(得分:1)

大多数情况下,我认为这一定是由于作业的重叠所致。您应该检查作业是否在相同的端口上运行,如果您正在使用端口转发,则应更改端口或创建时间表例如这些工作不会重叠。