Skip to content

Disable DNS resolution in ruby when service file is used#727

Merged
larskanis merged 1 commit into
ged:masterfrom
larskanis:respect-service
Jul 24, 2026
Merged

Disable DNS resolution in ruby when service file is used#727
larskanis merged 1 commit into
ged:masterfrom
larskanis:respect-service

Conversation

@larskanis

Copy link
Copy Markdown
Collaborator

This is based on @travismiller's idea to disable to disable DNS resolution in case of "service" parameter is used.
#635 (comment)

Since pg-1.3 the DNS resolution is done non-blocking in ruby. But pg-1.3 changed the order parameters are processed from:
connection string => service file => environment variable => compiled default
to:
connection string => PGSERVICE => environment variable => compiled default => explicit "service"

This commit changes parameter processing order back to libpq's order. Using blocking IO for DNS resolution in case of "service" parameter seems to be a reasonable tradeoff.

Fixes #635

This is based on @travismiller's idea to disable DNS resolution in case of "service" parameter is used.
  ged#635 (comment)

Since pg-1.3 the DNS resolution is done non-blocking in ruby.
But pg-1.3 changed the order parameters are processed from:
	connection string => service file => environment variable => compiled default
to:
	connection string => PGSERVICE => environment variable => compiled default => explicit "service"

This commit changes parameter processing order back to libpq's order.
Using blocking IO for DNS resolution in case of "service" parameter seems to be a reasonable tradeoff.

Fixes ged#635
@larskanis
larskanis merged commit 1a3cd4f into ged:master Jul 24, 2026
17 of 19 checks passed
@larskanis
larskanis deleted the respect-service branch July 24, 2026 16:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

service connection string and environment variables interact differently in ruby-pg than psql

1 participant