pgpool 遭遇bug portal prepared statement does not exist

在pg 的测试中,发现了一个bug

portal  "" prepared statement  3234342  does not exist

这个错误,目前已经可以重现了,基本可以确定是一个bug

从这几次测试来看,跟并发有一定关系,跟jdbc 的连接池参数 prepared cache 的大小有一定关系。

刚才开始测试时,大约5分钟,就可以重现问题。当时的prepared cache 设置为8

换为高性能的机器, 并发扩大到20 , 在9个小时的压力测试中,共出现 24次

第一次出现错误实在压力测试开始后2小时左右。 prepared cache 设置为50 。


目前官方没有patch 发布 ,  没有patch 在线上使用是基本不太可能了,除非绕过去。


有没有办法绕过去?  , 从jdbc 的doc 上看, 如果能去掉 prepared statements 应该就可以绕过去,可能会涉及到jdbc 功能的降级。


网上有人提及: 在jdbc 的url 上面设置参数 : protocolVersion=2  ,让jdbc 运行在2.0 版本上。

可以规避这个问题。需要进一步测试。



【后记 】


Re:[lisiliang,1楼]

进行了一轮测试,发现 protocolVersion=2 不起作用,配置了,resin 无法启动。

] Caused by: org.postgresql.util.PSQLException: 无法以要求的通讯协定 2;characterEncoding=GBK 建立连线。


到目前为止这个问题无解啦。


网上讨论了一番

采用session 级的复用, resion-query_list=''  

运行过程中,会报很多错误,似乎引进了更多的问题。


这个问题暂时无解了。


如果修改应用代码,成本似乎太高。 需要开发同事确认。





请使用浏览器的分享功能分享到微信等