apache / trafficcontrol

Apache Traffic Control is an Open Source implementation of a Content Delivery Network
https://trafficcontrol.apache.org/
Apache License 2.0
1.06k stars 340 forks source link

Not possible to disable retry for MSO #1970

Open sandmanahoy opened 6 years ago

sandmanahoy commented 6 years ago

In TC versions prior to 2.1, the parent.config for a cache with MSO enabled did not have parent_retry set by default. In 2.1, not setting parent_retry to any value for the DS profile results in parent.config having a value of "both" which changes the default behavior. Currently there is no way to "disable" both simple retry and unavailable server retry.

limited commented 6 years ago

I see two issues that @sandmanahoy is reporting 1) Traffic Ops always places a parent_retry token into parent.config because the default value is set to both[1]. We would like to be able to remove the presence of parent_retry. Removing parent_retry uses the traffic server default of dead server errors (timeouts) as opposed to both which configures traffic server to retry on simple errors (404s), unavailable server errors (503s) and dead server errors. This should definitely be fixed in 2.3

2) This behavior was unexpectedly changed during an upgrade (i.e. TO started inserting parent_retry=both when this option was previously missing). Need to discuss if we want to fix the migration (probably not since I don't think anyone is still using 2.0) or just release note this caveat as part of the bugfix.

[1] https://github.com/apache/incubator-trafficcontrol/blob/e2c498f2f6125c46d9c6222e79aec0439786725e/traffic_ops/app/lib/API/Configs/ApacheTrafficServer.pm#L2327

traeak commented 1 year ago

The official apache trafficserver documentation seems to indicate that there is no way to entirely turn off parent retries. It's just not an option currently. https://docs.trafficserver.apache.org/admin-guide/files/parent.config.en.html Currently the ATS default is "both" with retries of '1' and simple of 403, unavail of 503 which are added by default.