首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Postgres SSL系统调用错误:使用python和SYSCALL检测到EOF

Postgres SSL系统调用错误:使用python和SYSCALL检测到EOF
EN

Stack Overflow用户
提问于 2014-06-10 06:53:30
回答 8查看 91.7K关注 0票数 46

在Python2.7中使用psycopg2包时,我总是得到标题为error: SYSCALL copg2.DatabaseError: SSL SYSCALL error: EOF detected的错误信息

只有当我将WHERE column LIKE ''%X%''子句添加到pgrouting查询中时,才会出现这种情况。举个例子:

代码语言:javascript
运行
复制
SELECT id1 as node, cost FROM PGR_Driving_Distance(
  'SELECT id, source, target, cost 
     FROM edge_table
     WHERE cost IS NOT NULL and column LIKE ''%x%'' ',
  1, 10, false, false)

互联网上的帖子直观地表明这是SSL的问题,但每当我注释掉模式匹配方面的事情时,查询和到数据库的连接都工作得很好。

这是在运行Xubuntu 13.10的本地数据库上。

经过进一步的调查:看起来这可能是由于pgrouting扩展导致数据库崩溃,因为它是一个糟糕的查询,并且它们不是具有这种模式的链接。

我很快就会给你回复...

EN

回答 8

Stack Overflow用户

发布于 2020-07-28 17:16:42

错误:psycopg2.operationalerror: SSL SYSCALL error: EOF detected

设置:Airflow +红移+ psycopg2

When:查询执行时间较长(超过300秒)。

在这种情况下会发生套接字超时。解决这个特定错误变体的方法是向连接字符串添加keepalive参数。

代码语言:javascript
运行
复制
keepalive_kwargs = {
    "keepalives": 1,
    "keepalives_idle": 30,
    "keepalives_interval": 5,
    "keepalives_count": 5,
}

conection = psycopg2.connect(connection_string, **keepalive_kwargs)

Redshift要求keepalives_idle小于300。值30对我有效,您的里程数可能会有所不同。也可能只需要设置keepalives_idle参数-但要确保将keepalives设置为1。

Link to docs on postgres keepalives

Link to airflow doc advising on 300 timeout

票数 21
EN

Stack Overflow用户

发布于 2016-03-18 21:58:27

当我在Digital Ocean实例上的Droplet中运行一个缓慢的查询时,我遇到了这个问题。所有其他SQL都可以很好地运行,它在我的笔记本电脑上也能正常工作。在扩展到1GBRAM实例而不是512MB之后,它工作得很好,所以如果进程内存不足,似乎就会发生此错误。

票数 17
EN

Stack Overflow用户

发布于 2017-12-19 03:08:31

当我运行一些流氓查询,导致表被无限期锁定时,就会出现这个问题。我可以通过运行以下命令来查看查询:

代码语言:javascript
运行
复制
SELECT * from STV_RECENTS where status='Running' order by starttime desc;

然后用以下命令杀死他们:

代码语言:javascript
运行
复制
SELECT pg_terminate_backend(<pid>);
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24130305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档