trafficserver icon indicating copy to clipboard operation
trafficserver copied to clipboard

MgmtConverter is called from doRemap

Open masaori335 opened this issue 6 months ago • 0 comments

Some overridable configs are running special MgmtConverter when ATS does remap. It'd be great if they're converted when configs are loaded.

  • e.g. HttpTransact::HOST_RES_CONV for proxy.config.hostdb.ip_resolve
Process 2881 stopped
* thread #12, name = '[ET_NET 9]', stop reason = breakpoint 1.1
    frame #0: 0x000000010013e0e0 traffic_server`HttpTransact::$_1::operator()(this=0x0000000105291917, data=0x00000001053c83a8, src="ipv4") const at HttpTransact.cc:92:81
   89  	                                                },
   90  	                                                [](void *data, std::string_view src) -> void {
   91  	                                                  HostResData *res_data = static_cast<HostResData *>(data);
-> 92  	                                                  parse_host_res_preference(src.data(), res_data->order);
   93  	                                                }};
   94  	
   95  	static char range_type[] = "multipart/byteranges; boundary=RANGE_SEPARATOR";
Target 0: (traffic_server) stopped.
(lldb) bt
* thread #12, name = '[ET_NET 9]', stop reason = breakpoint 1.1
  * frame #0: 0x000000010013e0e0 traffic_server`HttpTransact::$_1::operator()(this=0x0000000105291917, data=0x00000001053c83a8, src="ipv4") const at HttpTransact.cc:92:81
    frame #1: 0x000000010013e0a8 traffic_server`HttpTransact::$_1::__invoke(data=0x00000001053c83a8, src="ipv4") at HttpTransact.cc:90:49
    frame #2: 0x000000010154ee80 libtsapi.dylib`TSHttpTxnConfigStringSet(txnp=0x00000001053c7000, conf=TS_CONFIG_HTTP_HOST_RESOLUTION_PREFERENCE, value="ipv4", length=4) at InkAPI.cc:7668:9
    frame #3: 0x000000010b146a44 conf_remap.so`TSRemapDoRemap(ih=0x000000010ada0000, rh=0x00000001053c7000, (null)=0x0000000105291fc8) at conf_remap.cc:346:9
    frame #4: 0x00000001001ab778 traffic_server`RemapPluginInfo::doRemap(this=0x0000000101f46920, ih=0x000000010ada0000, rh=0x00000001053c7000, rri=0x0000000105291fc8) at RemapPluginInfo.cc:229:14
    frame #5: 0x00000001001b0d34 traffic_server`RemapPluginInst::doRemap(this=0x00000001025c8d40, rh=0x00000001053c7000, rri=0x0000000105291fc8) at PluginFactory.cc:78:18
    frame #6: 0x00000001001b84f4 traffic_server`RemapPlugins::run_plugin(this=0x00000001052920d0, plugin=0x00000001025c8d40) at RemapPlugins.cc:63:28
    frame #7: 0x00000001001b87f0 traffic_server`RemapPlugins::run_single_remap(this=0x00000001052920d0) at RemapPlugins.cc:109:22
    frame #8: 0x00000001001ba9d4 traffic_server`RemapProcessor::perform_remap(this=0x0000000100631308, cont=0x00000001053c7000, s=0x00000001053c7108) at RemapProcessor.cc:301:19
    frame #9: 0x00000001000eae44 traffic_server`HttpSM::do_remap_request(this=0x00000001053c7000, run_inline=true) at HttpSM.cc:4491:35

In the OverridableHttpConfigParams, below config params are running special converters. And I'm trying to add two more for negative_caching_list and negative_revalidating_list.

HttpForwarded::OptionBitSet insert_forwarded;
ts_seconds down_server_timeout{300};
ConnectionTracker::TxnConfig connection_tracker_config;
HostResData host_res_data;

(for ts_seconds, it's just a static_cast, so it's not problem.)

https://github.com/apache/trafficserver/blob/aaa32afab7d3777fdcf14fa17e4ddc682348d2c6/include/proxy/http/HttpConfig.h#L440

masaori335 avatar Jun 16 '25 07:06 masaori335