Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ability to disable autocommit #158

Open
vladimirfx opened this issue Apr 19, 2021 · 2 comments
Open

Ability to disable autocommit #158

vladimirfx opened this issue Apr 19, 2021 · 2 comments
Labels
status: waiting-for-feedback We need additional information before we can continue

Comments

@vladimirfx
Copy link
Contributor

It is a requirement of DBUnit to make DB cleanup works. Setting this in test properties:

zonky.test.database.postgres.client.properties.autocommit=false

crashed embedded database creation with:

Caused by: io.zonky.test.db.provider.ProviderException: Unexpected error when prefetching a database; nested exception is java.lang.RuntimeException: org.postgresql.util.PSQLException: Unsupported property name: autocommitio.zonky.test.db.provider.common.PrefetchingDatabaseProvider$PreparedResult.get(PrefetchingDatabaseProvider.java:312)
	at io.zonky.test.db.provider.common.PrefetchingDatabaseProvider.createDatabase(PrefetchingDatabaseProvider.java:127)
	at io.zonky.test.db.provider.common.OptimizingDatabaseProvider.createDatabase(OptimizingDatabaseProvider.java:106)
	at io.zonky.test.db.provider.common.OptimizingDatabaseProvider.createDatabase(OptimizingDatabaseProvider.java:89)
	at io.zonky.test.db.context.DefaultDatabaseContext.lambda$refreshDatabase$0(DefaultDatabaseContext.java:266)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	... 1 more
Caused by: java.lang.RuntimeException: org.postgresql.util.PSQLException: Unsupported property name: autocommit
	at io.zonky.test.db.postgres.embedded.EmbeddedPostgres.lambda$getDatabase$0(EmbeddedPostgres.java:201)
	at com.google.common.collect.SingletonImmutableBiMap.forEach(SingletonImmutableBiMap.java:66)
	at io.zonky.test.db.postgres.embedded.EmbeddedPostgres.getDatabase(EmbeddedPostgres.java:197)
	at io.zonky.test.db.provider.postgres.ZonkyPostgresDatabaseProvider$DatabaseInstance.getDatabase(ZonkyPostgresDatabaseProvider.java:190)
	at io.zonky.test.db.provider.postgres.ZonkyPostgresDatabaseProvider$DatabaseInstance.executeStatement(ZonkyPostgresDatabaseProvider.java:183)
	at io.zonky.test.db.provider.postgres.ZonkyPostgresDatabaseProvider$DatabaseInstance.createDatabase(ZonkyPostgresDatabaseProvider.java:153)
	at io.zonky.test.db.provider.postgres.ZonkyPostgresDatabaseProvider.createDatabase(ZonkyPostgresDatabaseProvider.java:103)
	at io.zonky.test.db.provider.postgres.ZonkyPostgresDatabaseProvider.createTemplate(ZonkyPostgresDatabaseProvider.java:91)
	at io.zonky.test.db.provider.common.TemplatingDatabaseProvider.createTemplate(TemplatingDatabaseProvider.java:129)
	at io.zonky.test.db.provider.common.TemplatingDatabaseProvider.lambda$createTemplateIfPossible$1(TemplatingDatabaseProvider.java:168)
	at io.zonky.test.db.provider.common.TemplatingDatabaseProvider$TemplateWrapper.loadTemplate(TemplatingDatabaseProvider.java:291)
	at io.zonky.test.db.provider.common.TemplatingDatabaseProvider$TemplateWrapper.access$200(TemplatingDatabaseProvider.java:221)
	at io.zonky.test.db.provider.common.TemplatingDatabaseProvider.createTemplateIfPossible(TemplatingDatabaseProvider.java:168)
	at io.zonky.test.db.provider.common.TemplatingDatabaseProvider.createDatabase(TemplatingDatabaseProvider.java:112)
	at io.zonky.test.db.provider.common.TemplatingDatabaseProvider.createDatabase(TemplatingDatabaseProvider.java:104)
	at io.zonky.test.db.provider.common.PrefetchingDatabaseProvider$PrefetchingTask.lambda$forPreparer$0(PrefetchingDatabaseProvider.java:333)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at io.zonky.test.db.provider.common.PrefetchingDatabaseProvider$PrefetchingTask.run(PrefetchingDatabaseProvider.java:358)
	... 3 more
Caused by: org.postgresql.util.PSQLException: Unsupported property name: autocommit
	at org.postgresql.ds.common.BaseDataSource.setProperty(BaseDataSource.java:1307)
	at io.zonky.test.db.postgres.embedded.EmbeddedPostgres.lambda$getDatabase$0(EmbeddedPostgres.java:199)
	... 20 more

I can provide small PR that treats autocommit property specialty.

@henrik242
Copy link

@vladimirfx Any progress on this?

@tomix26
Copy link
Collaborator

tomix26 commented Jan 24, 2024

I guess that using server properties instead of the client ones could be the trick to fix the error.

zonky.test.database.postgres.server.properties.autocommit=false

@tomix26 tomix26 added the status: waiting-for-feedback We need additional information before we can continue label Mar 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: waiting-for-feedback We need additional information before we can continue
Projects
None yet
Development

No branches or pull requests

3 participants