Skip to content
Snippets Groups Projects
  1. Aug 05, 2016
  2. Jul 16, 2016
  3. Jul 06, 2016
    • Marek Vavruša's avatar
      daemon/worker: reverted inbound deduping · 61873e79
      Marek Vavruša authored
      the e638f9fb introduced deduplication
      for queries over UDP, the idea is to track same queries and answer
      only once, however that introduces both constant processing and
      memory overhead and could break clients who count packet loss
      by queries sent/received. disabling for now.
      61873e79
    • Marek Vavruša's avatar
      daemon/worker: track query in BEGIN and dst addr · e4747066
      Marek Vavruša authored
      * in the begin() layer, the incoming query is
        exposed as req->qsource.packet, it is invalidated
        after begin() and should not be modified
      * the destination address (local interface) is
        also tracked for filtering purposes
      e4747066
  4. Jun 16, 2016
  5. May 22, 2016
    • Marek Vavruša's avatar
      worker: fixed corruption when follower timeouts, early free · 22965f08
      Marek Vavruša authored
      * when enqueued task terminated earlier than leader
        task because of timeout, it wasn't dequeued from
        the waitlist immediately, but it didn't have any
        outstanding outbound queries. when leader task
        terminated, it removed this task and updated its
        outbound query, which didn't exist. this triggered
        a 16B write in undefined location
      * fixed timeout timer being scheduled for closing
        without holding reference to parent task
      22965f08
  6. May 15, 2016
  7. May 12, 2016
    • Marek Vavruša's avatar
      daemon/worker: deduplicate inbound queries · e638f9fb
      Marek Vavruša authored
      many clients do frequent retransmits of the query
      to avoid network losses and get better service,
      but then fail to work properly when a resolver
      answers SERVFAIL to some of them because of the
      time limit and some of them NOERROR. 
      it's also a good idea to avoid wasting time
      tracking pending tasks to solve the same thing.
      e638f9fb
  8. May 11, 2016
  9. May 06, 2016
  10. May 03, 2016
    • Marek Vavruša's avatar
      daemon: out-of-order processing for TCP · c23edd06
      Marek Vavruša authored
      * daemon now processes messages over TCP stream
      out-of-order and concurrently
      * support for TCP_DEFER_ACCEPT
      * support for TCP Fast-Open
      * there are now deadlines for TCP for idle/slow
      streams (to prevent slowloris; pruning)
      * there is now per-request limit on timeouts
      (each request is allowed 4 timeouts before bailing)
      * faster request closing, unified retry/timeout timers
      * rare race condition in timer closing fixed
      c23edd06
  11. Apr 18, 2016
    • Marek Vavruša's avatar
      engine: throttle outbound queries only when busy · 0b02bf5f
      Marek Vavruša authored
      resolver will always attempt to contact upstreams
      known to be bad if it's not busy.
      this fixes a problem on low-volume resolvers
      where a short connection outage could make
      resolvers deny resolving queries even after the
      connection is restored
      0b02bf5f
  12. Apr 14, 2016
  13. Mar 08, 2016
  14. Jan 30, 2016
  15. Jan 11, 2016
  16. Dec 17, 2015
  17. Dec 10, 2015
  18. Dec 08, 2015
  19. Dec 03, 2015
    • Marek Vavruša's avatar
      daemon/worker: deduplicate outbound queries · 6addcded
      Marek Vavruša authored
      worker can track outbound requests and if N resolutions want the same
      subrequest, only one will lead it and others will be notified when it
      finishes
      
      this massively reduces number of outbound requests for
      slow/unresponsive/low ttl requests
      6addcded
  20. Nov 28, 2015
  21. Nov 27, 2015
  22. Nov 26, 2015
  23. Nov 18, 2015
  24. Nov 15, 2015
    • Marek Vavruša's avatar
      daemon: fast retransmit address selection · e25abc9c
      Marek Vavruša authored
      instead of single I/O request per step, the daemon now retries
      all addresses in the selection with 300ms timeout between tries.
      there are len(list) + len(list)/2 tries
      
      the idea is to reduce latency when UDP request doesn't punch through,
      or some NSs are overwhelmed/faulty
      e25abc9c
  25. Nov 13, 2015
  26. Oct 15, 2015
  27. Oct 10, 2015
  28. Oct 07, 2015
  29. Sep 29, 2015
Loading