question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Cannot connect to AWS Aurora on latest version(s) due to EOFException

See original GitHub issue

Describe the issue

Connection attempt to database fails for AWS Aurora Postgres due to EOFException on 42.2.16.

Downgrading to postgres driver version 42.2.14 works with no issues.

Driver Version?

42.2.16

Java Version?

11

OS Version?

Run in AWS Lambda

PostgreSQL Version?

PostgreSQL 10.7 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.9.3, 64-bit

To Reproduce

In my case, we have a Spring Boot server with Flyway and the program fails on startup (see logs below). So to reproduce you would start a Spring Boot (2.3.3) project with Flyway 6.5.5 and postgresql driver 42.2.16 and start it with a DB url pointing to an AWS Aurora cluster.

However, it seems that this is happening in other projects as well (not just Spring/Flyway). When googling for the error I found this issue in Quarkus: https://github.com/quarkusio/quarkus/issues/12022 , where several people describe the same error - without using Spring. One person even has the same issue against an Azure cluster. It seems to be postgres driver related, especially since downgrading to 42.2.14 solved the issue.

Expected behaviour

I expect the driver to connect to the database cluster without failing, as it does in previous versions.

Logs

These are the logs I can see in CloudWatch (unfortunately I cannot access the postgres logs)

2020-09-30 07:45:15  ERROR HikariPool:593 - HikariPool-1 - Exception during pool initialization.
org.postgresql.util.PSQLException: The connection attempt failed.
	at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:315) ~[task/:?]
	at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:51) ~[task/:?]
	at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:225) ~[task/:?]
	at org.postgresql.Driver.makeConnection(Driver.java:465) ~[task/:?]
	at org.postgresql.Driver.connect(Driver.java:264) ~[task/:?]
	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[task/:?]
	at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:358) ~[task/:?]
	at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[task/:?]
	at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:477) ~[task/:?]
	at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:560) ~[task/:?]
	at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) ~[task/:?]
	at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) ~[task/:?]
	at org.flywaydb.core.internal.jdbc.JdbcUtils.openConnection(JdbcUtils.java:56) ~[task/:?]
	at org.flywaydb.core.internal.jdbc.JdbcConnectionFactory.<init>(JdbcConnectionFactory.java:80) ~[task/:?]
	at org.flywaydb.core.Flyway.execute(Flyway.java:453) ~[task/:?]
	at org.flywaydb.core.Flyway.migrate(Flyway.java:158) ~[task/:?]
	at org.springframework.boot.autoconfigure.flyway.FlywayMigrationInitializer.afterPropertiesSet(FlywayMigrationInitializer.java:65) ~[task/:?]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1853) ~[task/:?]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1790) ~[task/:?]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594) ~[task/:?]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) ~[task/:?]
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) ~[task/:?]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226) [task/:?]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) [task/:?]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) [task/:?]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:311) [task/:?]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) [task/:?]
	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1109) [task/:?]
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:869) [task/:?]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551) [task/:?]
	at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:89) [task/:?]
	at com.alextherapeutics.lambda.AbstractStreamHandler.<init>(AbstractStreamHandler.java:55) [task/:?]
	at com.alextherapeutics.lambda.StreamLambdaHandler.<init>(StreamLambdaHandler.java:23) [task/:?]
	at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) [?:?]
	at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) [?:?]
	at java.lang.reflect.Constructor.newInstance(Unknown Source) [?:?]
	at lambdainternal.EventHandlerLoader.newInstance(EventHandlerLoader.java:409) [aws-lambda-java-runtime-0.2.0.jar:?]
	at lambdainternal.EventHandlerLoader$StreamMethodRequestHandler.fromMethod(EventHandlerLoader.java:333) [aws-lambda-java-runtime-0.2.0.jar:?]
	at lambdainternal.EventHandlerLoader$StreamMethodRequestHandler.makeRequestHandler(EventHandlerLoader.java:346) [aws-lambda-java-runtime-0.2.0.jar:?]
	at lambdainternal.EventHandlerLoader.getThreeLengthHandler(EventHandlerLoader.java:680) [aws-lambda-java-runtime-0.2.0.jar:?]
	at lambdainternal.EventHandlerLoader.getHandlerFromOverload(EventHandlerLoader.java:699) [aws-lambda-java-runtime-0.2.0.jar:?]
	at lambdainternal.EventHandlerLoader.loadEventPojoHandler(EventHandlerLoader.java:811) [aws-lambda-java-runtime-0.2.0.jar:?]
	at lambdainternal.EventHandlerLoader.loadEventHandler(EventHandlerLoader.java:613) [aws-lambda-java-runtime-0.2.0.jar:?]
	at lambdainternal.AWSLambda.findUserMethods(AWSLambda.java:122) [aws-lambda-java-runtime-0.2.0.jar:?]
	at lambdainternal.AWSLambda.startRuntime(AWSLambda.java:226) [aws-lambda-java-runtime-0.2.0.jar:?]
	at lambdainternal.AWSLambda.startRuntime(AWSLambda.java:192) [aws-lambda-java-runtime-0.2.0.jar:?]
	at lambdainternal.AWSLambda.main(AWSLambda.java:187) [aws-lambda-java-runtime-0.2.0.jar:?]
Caused by: java.io.EOFException
	at org.postgresql.core.PGStream.receiveChar(PGStream.java:443) ~[task/:?]
	at org.postgresql.core.v3.ConnectionFactoryImpl.enableGSSEncrypted(ConnectionFactoryImpl.java:436) ~[task/:?]
	at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:144) ~[task/:?]
	at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:213) ~[task/:?]
	... 47 more

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:15 (5 by maintainers)

github_iconTop GitHub Comments

1reaction
davecramercommented, Oct 11, 2021

No worries, thanks for responding here with the root cause. It will help others!

1reaction
davecramercommented, Oct 11, 2021

2 suggestions:

  1. downgrade the driver to 42.2.14 or the like
  2. very simple java program (without spring) that just connects and does select 1…
Read more comments on GitHub >

github_iconTop Results From Across the Web

How do I troubleshoot problems connecting to Amazon Aurora?
Here are common causes for issues connecting to an Amazon Aurora DB cluster or instance: The Aurora DB cluster or instance is still...
Read more >
Why can't I connect to my Amazon RDS DB or Amazon Aurora ...
The DB instance isn't accepting the connection because of modification or because it's in a non-available state; Incorrect authentication ...
Read more >
Troubleshooting for Amazon Aurora - AWS Documentation
Can't connect to Amazon RDS DB instance; Amazon RDS security issues; Resetting the DB instance owner password; Amazon RDS DB instance outage or...
Read more >
Resolve problems connecting to an Amazon RDS DB instance
The client is running on a version that's incompatible with the database version. Tip: You can use the following troubleshooting steps to ...
Read more >
Connecting to an Amazon Aurora DB cluster
Security group in the VPC doesn't allow access – Your VPC needs to allow connections from your device or from an Amazon EC2...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found