Skip to content

Have deterministic DNS for specs

Thong Kuah requested to merge determinstic_dns_specs into master

What does this MR do?

  1. sham_rack gem cannot handle IPv6 addresses. This was causing spec/lib/gitlab/http_connection_adapter_spec.rb to fail with a very hard-to-debug ArgumentError: invalid address
    • ArgumentError: invalid address turns out to be that sham_rack does not support IPv6 address
    • FIX: remove gem - one less Net::HTTP monkeypatch
  2. Turns out on my machine, Addrinfo resolvs to return an IPv6 address first. spec/lib/gitlab/http_connection_adapter_spec.rb seems to assume IPv4 address will be returned first.
    • FIX: make DNS deterministic with stubs
> addrinfo = Addrinfo.getaddrinfo 'example.org', 80, nil, :STREAM
=> [#<Addrinfo: [2606:2800:220:1:248:1893:25c8:1946]:80 TCP (example.org)>, #<Addrinfo: 93.184.216.34:80 TCP (example.org)>]

Does this MR meet the acceptance criteria?

Conformity

Performance and testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited by 🤖 GitLab Bot 🤖

Merge request reports