From 4f295fb9fc0a06cb816aa70ae35ff66ff19a384b Mon Sep 17 00:00:00 2001 From: Evan Zelkowitz Date: Thu, 22 Sep 2022 15:10:45 -0600 Subject: [PATCH] Move plugin_init for verify cmd plugin_init calls api_init which will intialize all the global hooks needed for lifecycle and other plugins. Without doing this those hook objects are empty so if a plugin (such as lua) makes a call to add a lifecycle hook on remapinit, this will crash since they haven't been initialized --- src/traffic_server/traffic_server.cc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/traffic_server/traffic_server.cc b/src/traffic_server/traffic_server.cc index ebbc7e956b8..1866a7c8173 100644 --- a/src/traffic_server/traffic_server.cc +++ b/src/traffic_server/traffic_server.cc @@ -895,6 +895,13 @@ cmd_verify(char * /* cmd ATS_UNUSED */) Layout::get()->update_sysconfdir(conf_dir); } + if (!plugin_init(true)) { + exitStatus |= (1 << 2); + fprintf(stderr, "ERROR: Failed to load %s, exitStatus %d\n\n", ts::filename::PLUGIN, exitStatus); + } else { + fprintf(stderr, "INFO: Successfully loaded %s\n\n", ts::filename::PLUGIN); + } + if (!urlRewriteVerify()) { exitStatus |= (1 << 0); fprintf(stderr, "ERROR: Failed to load %s, exitStatus %d\n\n", ts::filename::REMAP, exitStatus); @@ -909,13 +916,6 @@ cmd_verify(char * /* cmd ATS_UNUSED */) fprintf(stderr, "INFO: Successfully loaded %s\n\n", ts::filename::RECORDS); } - if (!plugin_init(true)) { - exitStatus |= (1 << 2); - fprintf(stderr, "ERROR: Failed to load %s, exitStatus %d\n\n", ts::filename::PLUGIN, exitStatus); - } else { - fprintf(stderr, "INFO: Successfully loaded %s\n\n", ts::filename::PLUGIN); - } - SSLInitializeLibrary(); SSLConfig::startup(); if (!SSLCertificateConfig::startup()) {