Skip to content

SSLClientCoordinator: SSL config is reloaded multiple times #11724

@cmcfarlen

Description

@cmcfarlen

If multiple ssl related config files are changed and then traffic_ctl config reload is executed, the ssl config will reload multiple times.

Reproduction:

  1. Run traffic_server with a sni.yaml and ssl_multicert.config file configured
  2. touch sni.yaml
  3. traffic_ctl config reload
  4. Observerve the log output:
[Aug 20 13:59:35.145] [ET_TASK 0] NOTE: /opt/ats/etc/trafficserver/sni.yaml loading ...
[Aug 20 13:59:35.147] [ET_TASK 0] NOTE: /opt/ats/etc/trafficserver/sni.yaml finished loading
[Aug 20 13:59:35.147] [ET_TASK 0] NOTE: ssl_multicert.config loading ...
[Aug 20 13:59:35.158] [ET_TASK 0] NOTE: /opt/ats/etc/trafficserver/ssl_multicert.config finished loading
  1. touch sni.yaml and ssl_multicert.config files
  2. traffic_ctl config reload
  3. Observer the log output:
[Aug 20 13:59:53.154] [ET_TASK 0] NOTE: /opt/ats/etc/trafficserver/sni.yaml loading ...
[Aug 20 13:59:53.156] [ET_TASK 0] NOTE: /opt/ats/etc/trafficserver/sni.yaml finished loading
[Aug 20 13:59:53.156] [ET_TASK 0] NOTE: ssl_multicert.config loading ...
[Aug 20 13:59:53.166] [ET_TASK 0] NOTE: /opt/ats/etc/trafficserver/ssl_multicert.config finished loading
[Aug 20 13:59:53.166] [ET_TASK 0] NOTE: /opt/ats/etc/trafficserver/sni.yaml loading ...
[Aug 20 13:59:53.167] [ET_TASK 0] NOTE: /opt/ats/etc/trafficserver/sni.yaml finished loading
[Aug 20 13:59:53.168] [ET_TASK 0] NOTE: ssl_multicert.config loading ...
[Aug 20 13:59:53.174] [ET_TASK 0] NOTE: /opt/ats/etc/trafficserver/ssl_multicert.config finished loading

This happens because the callbacks setup in SSLClientCoordinator are independently attached and so the reconfigure function will be called for every updated config item specified.

This happens on the master branch, but also for 9.2.x

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions