PgDog version
v0.1.38
JDBC access hangs when using postgres fastpath to read large objects. I tried both session and transaction pool types
Symptom: Fastpath F message sent by JDBC's LargeObjectManager gets no response, thread hangs indefinitely
SQL-based (psql) lo_open/loread work fine through PgDog; hang only happens with JDBC's Fastpath wire message
Java thread hangs on:
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.Net.poll(java.base@25.0.1/Native Method)
at sun.nio.ch.NioSocketImpl.park(java.base@25.0.1/NioSocketImpl.java:190)
at sun.nio.ch.NioSocketImpl.park(java.base@25.0.1/NioSocketImpl.java:200)
at sun.nio.ch.NioSocketImpl.implRead(java.base@25.0.1/NioSocketImpl.java:307)
at sun.nio.ch.NioSocketImpl.read(java.base@25.0.1/NioSocketImpl.java:354)
at sun.nio.ch.NioSocketImpl$1.read(java.base@25.0.1/NioSocketImpl.java:798)
at java.net.Socket$SocketInputStream.implRead(java.base@25.0.1/Socket.java:974)
at java.net.Socket$SocketInputStream.read(java.base@25.0.1/Socket.java:964)
at org.postgresql.core.VisibleBufferedInputStream.readMore(VisibleBufferedInputStream.java:192)
at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:159)
at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:144)
at org.postgresql.core.VisibleBufferedInputStream.read(VisibleBufferedInputStream.java:76)
at org.postgresql.core.PGStream.receiveChar(PGStream.java:476)
at org.postgresql.core.v3.QueryExecutorImpl.receiveFastpathResult(QueryExecutorImpl.java:881)
at org.postgresql.core.v3.QueryExecutorImpl.fastpathCall(QueryExecutorImpl.java:669)
at org.postgresql.fastpath.Fastpath.fastpath(Fastpath.java:110)
at org.postgresql.fastpath.Fastpath.fastpath(Fastpath.java:152)
at org.postgresql.fastpath.Fastpath.getInteger(Fastpath.java:164)
at org.postgresql.largeobject.LargeObject.(LargeObject.java:107)
at org.postgresql.largeobject.LargeObjectManager.open(LargeObjectManager.java:247)
at org.postgresql.largeobject.LargeObjectManager.open(LargeObjectManager.java:230)
at org.postgresql.jdbc.AbstractBlobClob.getLo(AbstractBlobClob.java:288)
at org.postgresql.jdbc.AbstractBlobClob.getBinaryStream(AbstractBlobClob.java:127)
at org.postgresql.jdbc.PgClob.getCharacterStream(PgClob.java:76)
at org.hibernate.type.descriptor.java.DataHelper.extractString(DataHelper.java:263)
at org.hibernate.type.descriptor.java.StringTypeDescriptor.wrap(StringTypeDescriptor.java:75)
at org.hibernate.type.descriptor.java.StringTypeDescriptor.wrap(StringTypeDescriptor.java:22)
at org.hibernate.type.descriptor.sql.ClobTypeDescriptor$1.doExtract(ClobTypeDescriptor.java:44)
at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:47)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:260)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:256)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:252)
at org.hibernate.loader.criteria.CriteriaLoader.getResultRow(CriteriaLoader.java:161)
at org.hibernate.loader.criteria.CriteriaLoader.getResultColumnOrRow(CriteriaLoader.java:141)
PgDog version
v0.1.38
JDBC access hangs when using postgres fastpath to read large objects. I tried both session and transaction pool types
Symptom: Fastpath F message sent by JDBC's LargeObjectManager gets no response, thread hangs indefinitely
SQL-based (psql) lo_open/loread work fine through PgDog; hang only happens with JDBC's Fastpath wire message
Java thread hangs on:
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.Net.poll(java.base@25.0.1/Native Method)
at sun.nio.ch.NioSocketImpl.park(java.base@25.0.1/NioSocketImpl.java:190)
at sun.nio.ch.NioSocketImpl.park(java.base@25.0.1/NioSocketImpl.java:200)
at sun.nio.ch.NioSocketImpl.implRead(java.base@25.0.1/NioSocketImpl.java:307)
at sun.nio.ch.NioSocketImpl.read(java.base@25.0.1/NioSocketImpl.java:354)
at sun.nio.ch.NioSocketImpl$1.read(java.base@25.0.1/NioSocketImpl.java:798)
at java.net.Socket$SocketInputStream.implRead(java.base@25.0.1/Socket.java:974)
at java.net.Socket$SocketInputStream.read(java.base@25.0.1/Socket.java:964)
at org.postgresql.core.VisibleBufferedInputStream.readMore(VisibleBufferedInputStream.java:192)
at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:159)
at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:144)
at org.postgresql.core.VisibleBufferedInputStream.read(VisibleBufferedInputStream.java:76)
at org.postgresql.core.PGStream.receiveChar(PGStream.java:476)
at org.postgresql.core.v3.QueryExecutorImpl.receiveFastpathResult(QueryExecutorImpl.java:881)
at org.postgresql.core.v3.QueryExecutorImpl.fastpathCall(QueryExecutorImpl.java:669)
at org.postgresql.fastpath.Fastpath.fastpath(Fastpath.java:110)
at org.postgresql.fastpath.Fastpath.fastpath(Fastpath.java:152)
at org.postgresql.fastpath.Fastpath.getInteger(Fastpath.java:164)
at org.postgresql.largeobject.LargeObject.(LargeObject.java:107)
at org.postgresql.largeobject.LargeObjectManager.open(LargeObjectManager.java:247)
at org.postgresql.largeobject.LargeObjectManager.open(LargeObjectManager.java:230)
at org.postgresql.jdbc.AbstractBlobClob.getLo(AbstractBlobClob.java:288)
at org.postgresql.jdbc.AbstractBlobClob.getBinaryStream(AbstractBlobClob.java:127)
at org.postgresql.jdbc.PgClob.getCharacterStream(PgClob.java:76)
at org.hibernate.type.descriptor.java.DataHelper.extractString(DataHelper.java:263)
at org.hibernate.type.descriptor.java.StringTypeDescriptor.wrap(StringTypeDescriptor.java:75)
at org.hibernate.type.descriptor.java.StringTypeDescriptor.wrap(StringTypeDescriptor.java:22)
at org.hibernate.type.descriptor.sql.ClobTypeDescriptor$1.doExtract(ClobTypeDescriptor.java:44)
at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:47)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:260)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:256)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:252)
at org.hibernate.loader.criteria.CriteriaLoader.getResultRow(CriteriaLoader.java:161)
at org.hibernate.loader.criteria.CriteriaLoader.getResultColumnOrRow(CriteriaLoader.java:141)