Skip to content
Snippets Groups Projects

lib/selection: improve IPv6 avoidance if broken + debug logs

Merged Vladimír Čunát requested to merge selection-no6-bis2 into master
  1. Jun 09, 2022
    • Vladimír Čunát's avatar
      lib/selection debug logs: print one more line · f9d75a16
      Vladimír Čunát authored
      And that made the "NO6: is KO" line extraneous.
      Example in context:
      [select][14162.01]   => id: '15271' choosing from addresses: 0 v4 + 1 v6; names to resolve: 6 v4 + 5 v6; force_resolve: 0; NO6: IPv6 is OK
      [select][14162.01]   => id: '15271' choosing: 'ns1.p31.dynect.net.'@'2600:2000:2210::31#00053' with timeout 774 ms zone cut: 'amazon.com.'
      [select][14162.01]   => id: '15271' updating: 'ns1.p31.dynect.net.'@'2600:2000:2210::31#00053' zone cut: 'amazon.com.' with rtt 316 to srtt: 311 and variance: 89
      Verified
      f9d75a16
    • Vladimír Čunát's avatar
      lib/selection: improve IPv6 avoidance if broken · 83efd209
      Vladimír Čunát authored
      It was still possible to get into a deadlock here.
      https://forum.turris.cz/t/not-connecting-to-applications-like-discord/17111/7
      If A records for a NS fell out of cache but AAAA remained,
      with probability 1-\epsilon we'd choose an AAAA address
      even if IPv6 was considered broken.
      
      I looked at *the whole* no6 strategy again, and I do think that
      there are no such holes anymore.  A few percent attempts will still
      go over IPv6 even if it's considered broken, but that sounds OK-ish.
      Verified
      83efd209