chef / chef/chef-server

[terraform] Error when configuring against external PostgreSQL over IPv6

Open
#1,866 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Aspect: Packaging Component: omnibus packaging Status: To be prioritized Triage: Confirmed Type: Bug
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.