m-lab / traceroute-caller

A sidecar service which runs traceroute after a connection closes
Apache License 2.0
18 stars 5 forks source link

Remove code related to scamper daemon mode #125

Closed SaiedKazemi closed 2 years ago

SaiedKazemi commented 2 years ago

The scamper tool used by traceroute-caller to run traceroutes can operate in two modes: stand-alone binary mode and daemon mode. In the stand-alone mode, an instance of scamper is invoked for each traceroute run. In the daemon mode, scamper is invoked once as a daemon to listen on a socket for requests. The daemon mode, however, does not work properly and times out when there are many concurrent requests. As a result, about 75% of all traceroutes were timing out. We are now running scamper in stand-alone mode and are not supporting the daemon mode anymore.

The changes were tested locally using docker-compose.


This change is Reviewable

coveralls commented 2 years ago

Pull Request Test Coverage Report for Build 381


Totals Coverage Status
Change from base Build 379: 2.6%
Covered Lines: 534
Relevant Lines: 547

💛 - Coveralls
SaiedKazemi commented 2 years ago

Thanks for your review Stephen.

I discussed the timeout issue with Matthew Luckie back in June.

Regarding whether we should prefer daemon mode over stand-alone mode, Matthew said that there was no preference: "I don't think so. Perhaps the main thing it gets you in this scenario is that because scamper will only do a single measurement to any IP address at any one time, as a form of preventing multiple overlapping traceroutes towards a destination which might be viewed as an annoyance by the destination." Because of IP cache, we are not running multiple overlapping traceroutes so there's no issue there.

You were copied on the emails but please let me know if you can't find them.