[terraform] external-elasticsearch scenario fails on ipv6
Open
Nobody has claimed this yet.
- Dominant language
- Erlang
- Stars
- 303
- Forks
- 211
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 5
Description
null_resource.chef_server_config (remote-exec): ================================================================================
--
| null_resource.chef_server_config (remote-exec): Recipe Compile Error in /var/opt/opscode/local-mode-cache/cookbooks/private-chef/recipes/default.rb
| null_resource.chef_server_config (remote-exec): ================================================================================
|
| null_resource.chef_server_config (remote-exec): RuntimeError
| null_resource.chef_server_config (remote-exec): ------------
| null_resource.chef_server_config (remote-exec): Failed to connect to elasticsearch service. Ensure node['private_chef']['opscode-solr4']['external_url'] is correct.
| null_resource.chef_server_config (remote-exec): Error connecting to http://elasticsearch.internal:9200 - Failed to open TCP connection to elasticsearch.internal:9200 (Connection timed out - connect(2) for "elasticsearch.internal" port 9200)
|
| null_resource.chef_server_config (remote-exec): Cookbook Trace:
| null_resource.chef_server_config (remote-exec): ---------------
| null_resource.chef_server_config (remote-exec): /var/opt/opscode/local-mode-cache/cookbooks/private-chef/libraries/helper.rb:91:in `rescue in elastic_search_major_version'
| null_resource.chef_server_config (remote-exec): /var/opt/opscode/local-mode-cache/cookbooks/private-chef/libraries/helper.rb:85:in `elastic_search_major_version'
| null_resource.chef_server_config (remote-exec): /var/opt/opscode/local-mode-cache/cookbooks/private-chef/libraries/helper.rb:118:in `es_index_definition'
| null_resource.chef_server_config (remote-exec): /var/opt/opscode/local-mode-cache/cookbooks/private-chef/recipes/opscode-solr4-external.rb:25:in `block in from_file'
| null_resource.chef_server_config (remote-exec): /var/opt/opscode/local-mode-cache/cookbooks/private-chef/recipes/opscode-solr4-external.rb:23:in `from_file'
| null_resource.chef_server_config (remote-exec): /var/opt/opscode/local-mode-cache/cookbooks/private-chef/recipes/default.rb:149:in `block in from_file'
| null_resource.chef_server_config (remote-exec): /var/opt/opscode/local-mode-cache/cookbooks/private-chef/recipes/default.rb:145:in `each'
| null_resource.chef_server_config (remote-exec): /var/opt/opscode/local-mode-cache/cookbooks/private-chef/recipes/default.rb:145:in `from_file'
|
| null_resource.chef_server_config (remote-exec): Relevant File Content:
| null_resource.chef_server_config (remote-exec): ----------------------
| null_resource.chef_server_config (remote-exec): /var/opt/opscode/local-mode-cache/cookbooks/private-chef/libraries/helper.rb:
| null_resource.chef_server_config (remote-exec):
| null_resource.chef_server_config (remote-exec): 84: if node['private_chef']['opscode-solr4']['external'] && node['private_chef']['opscode-erchef']['search_provider'] == 'elasticsearch'
| null_resource.chef_server_config (remote-exec): 85: begin
| null_resource.chef_server_config (remote-exec): 86: client = Chef::HTTP.new(node['private_chef']['opscode-solr4']['external_url'])
| null_resource.chef_server_config (remote-exec): 87: response = client.get('')
| null_resource.chef_server_config (remote-exec): 88: rescue => e
| null_resource.chef_server_config (remote-exec): 89: # Perform a blind rescue because Net:HTTP throws a variety of exceptions - some of which are platform specific.
| null_resource.chef_server_config (remote-exec): 90: if current_request == max_requests
| null_resource.chef_server_config (remote-exec): 91>> raise "Failed to connect to elasticsearch service. Ensure node['private_chef']['opscode-solr4']['external_url'] is correct.\n#{e}"
| null_resource.chef_server_config (remote-exec): 92: else
| null_resource.chef_server_config (remote-exec): 93: # Chef HTTP logs the details in the debug log.
| null_resource.chef_server_config (remote-exec): 94: Chef::Log.error "Failed to connect to elasticsearch service #{current_request}/#{max_requests}. Retrying."
| null_resource.chef_server_config (remote-exec): 95: current_request += 1
| null_resource.chef_server_config (remote-exec): 96: sleep(current_request * 2) # Exponential back-off.
| null_resource.chef_server_config (remote-exec): 97: retry
| null_resource.chef_server_config (remote-exec): 98: end
| null_resource.chef_server_config (remote-exec): 99: end
| null_resource.chef_server_config (remote-exec): 100: begin
| null_resource.chef_server_config (remote-exec):
| null_resource.chef_server_config (remote-exec): System Info:
| null_resource.chef_server_config (remote-exec): ------------
| null_resource.chef_server_config (remote-exec): chef_version=15.8.23
| null_resource.chef_server_config (remote-exec): platform=redhat
| null_resource.chef_server_config (remote-exec): platform_version=6.10
| null_resource.chef_server_config (remote-exec): ruby=ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux]
| null_resource.chef_server_config (remote-exec): program_name=/opt/opscode/embedded/bin/chef-client
| null_resource.chef_server_config (remote-exec): executable=/opt/opscode/embedded/bin/chef-client
|
| null_resource.chef_server_config (remote-exec):
| null_resource.chef_server_config (remote-exec): Running handlers:
| null_resource.chef_server_config (remote-exec): Running handlers complete
| null_resource.chef_server_config (remote-exec): Chef Infra Client failed. 1 resources updated in 34 minutes 07 seconds
| null_resource.chef_server_config (remote-exec): [2020-04-07T20:41:57+00:00] FATAL: Stacktrace dumped to /var/opt/opscode/local-mode-cache/chef-stacktrace.out
| null_resource.chef_server_config (remote-exec): [2020-04-07T20:41:57+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
| null_resource.chef_server_config (remote-exec): [2020-04-07T20:41:57+00:00] FATAL: RuntimeError: Failed to connect to elasticsearch service. Ensure node['private_chef']['opscode-solr4']['external_url'] is correct.
| null_resource.chef_server_config (remote-exec): Error connecting to http://elasticsearch.internal:9200 - Failed to open TCP connection to elasticsearch.internal:9200 (Connection timed out - connect(2) for "elasticsearch.internal" port 9200)
|
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
Start with the external-elasticsearch Terraform scenario and the connection path shown in private-chef/libraries/helper.rb, especially elastic_search_major_version and the external_url setting. Reproduce the IPv6 failure, then trace the external Elasticsearch recipe and connection configuration; done means the scenario completes successfully over IPv6.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- elasticsearch, ruby, terraform
- Domain
- databases, infrastructure, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100