Postgres 11 问题:服务器上的“SSL 错误:DATA_LENGTH_TOO_LONG”错误

Posted

技术标签:

【中文标题】Postgres 11 问题:服务器上的“SSL 错误:DATA_LENGTH_TOO_LONG”错误【英文标题】:Postgres 11 issue: "SSL error: DATA_LENGTH_TOO_LONG" error on server 【发布时间】:2020-02-25 16:38:08 【问题描述】:

寻找关于这里发生了什么的任何想法:

环境:

将数据复制到表中的 Java 11 GCP 函数 使用 JDBC 驱动程序的 Postgres 11 Cloud SQL (org.postgresql:postgresql:42.2.5) 2 周内不会更改任何代码或配置。 我正在连接到私有 SQL IP 地址,类似于 jdbc:postgresql://10.90.123.4/... 我不需要 SSL 证书 Function 和 SQL 之间设置了 Serverless VPC Access。 这发生在两个不同的 GCP 项目和 SQL 服务器中。

在本周六 (2/22) 之前,一切正常。我们正在使用 Postgres 的 CopyManager 将数据加载到表中:copyManager.copyIn(sql, this.reader);

在 2 月 22 日之后,这开始失败并出现“SSL 错误:DATA_LENGTH_TOO_LONG”,如 SQL 服务器日志中所示。这些故障是 100% 一致的,并且仍然会发生。我可以看到在问题开始前几个小时谷歌重新启动了 SQL,我想知道这是否与发生的任何维护有关,SQL 版本升级?我不清楚周六之前我们有什么版本,但现在是 11.6。

有趣的是,如果加载到表中的文件小于一定大小,我可以避免错误:

14,052 字节(磁盘上 16 KB):每次都失败。 14,051 字节(磁盘上 16 KB):每次都有效。

如果来自 Google 的人员能够确认可能导致此错误的维护时段内发生的事情,我将不胜感激。我们目前被此阻止,因为我们将比约 14 000 字节大得多的数据集加载到数据库中。

【问题讨论】:

如果谷歌有什么要补充的,我会留下这个问题,但听起来最近的 Cloud SQL 维护破坏了很多东西,可能也包括这个。见groups.google.com/forum/… 【参考方案1】:

仅供参考,这是由 TLS v1.3 的 JDK 问题引起的,已在 JDK 11.05 中解决。谷歌可能会在下周将用于 Cloud Functions JVM 的 JDK 从 11.04 升级到更新的版本。见https://bugs.openjdk.java.net/browse/JDK-8221253

【讨论】:

以上是关于Postgres 11 问题:服务器上的“SSL 错误:DATA_LENGTH_TOO_LONG”错误的主要内容,如果未能解决你的问题,请参考以下文章

尝试通过 JDBC 与 Postgres 建立 SSL 连接时出现 PSQLException“无法打开 SSL 根证书文件”

通过 JDBC 连接到 postgres 服务器时 sslmode 参数的默认值?

无法将 SSL 安全数据库连接到 typeorm

使用 R 通过 SSL 连接到 Postgres

为 Django Postgres 连接强制 SSL

Azure Postgres:主机“0.0.0.0”、用户“用户名”、数据库“订单”、SSL 上没有 pg_hba.conf 条目