[terraform] Error when configuring against external PostgreSQL over IPv6
Nobody has claimed this yet.
- Dominant language
- Erlang
- Stars
- 303
- Forks
- 211
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 5
Description
When attempting to configure an external postgresql database using an IPv6 connection like this:
postgresql['vip'] = "2600:1f1c:885:dead:beef:1234:abcd:a1b2"
The following error is logged:
2019-12-11 17:35:49 =ERROR REPORT====
pool 'sqerl' failed to start member: {error,{{bad_host,"2600:1f1c:885:fd01:ff85:8086:247f:6f67"},[{envy_parse,maybe_parse,3,[{file,"/var/cache/omnibus/chef-server/src/oc_erchef/_build/default/lib/envy/src/envy_pars
e.erl"},{line,43}]},{chef_secrets_sqerl,config,1,[{file,"/var/cache/omnibus/chef-server/src/oc_erchef/_build/default/lib/chef_secrets/src/chef_secrets_sqerl.erl"},{line,18}]},{sqerl_client,init,1,[{file,"/var/cache
/omnibus/chef-server/src/oc_erchef/_build/default/lib/sqerl/src/sqerl_client.erl"},{line,124}]},{gen_server,init_it,2,[{file,"gen_server.erl"},{line,365}]},{gen_server,init_it,6,[{file,"gen_server.erl"},{line,333}]
},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]}}
Interestingly, if you attempt to use an IPv6 FQDN like this:
postgresql['vip'] = "postgresql.internal"
A similar error is logged:
2019-12-11 17:16:10 =ERROR REPORT====
pool 'sqerl' failed to start member: {error,{{bad_host,"postgresql.internal"},[{envy_parse,maybe_parse,3,[{file,"/var/cache/omnibus/chef-server/src/oc_erchef/_build/default/lib/envy/src/envy_parse.erl"},{line,43}]}
,{chef_secrets_sqerl,config,1,[{file,"/var/cache/omnibus/chef-server/src/oc_erchef/_build/default/lib/chef_secrets/src/chef_secrets_sqerl.erl"},{line,18}]},{sqerl_client,init,1,[{file,"/var/cache/omnibus/chef-serve
r/src/oc_erchef/_build/default/lib/sqerl/src/sqerl_client.erl"},{line,124}]},{gen_server,init_it,2,[{file,"gen_server.erl"},{line,365}]},{gen_server,init_it,6,[{file,"gen_server.erl"},{line,333}]},{proc_lib,init_p_
do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]}}
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the failure with the postgresql['vip'] IPv6 literal and FQDN examples. Trace the reported path through envy_parse.erl, chef_secrets_sqerl.erl, and sqerl_client.erl, starting at the envy_parse call; done means external PostgreSQL configuration accepts the IPv6 cases without a bad_host error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- erlang, postgresql, terraform
- Domain
- backend, databases, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100