-
Notifications
You must be signed in to change notification settings - Fork 780
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add new API / TSPluginDSOReloadEnable to override DSO remap dynamic reload. #6880
Add new API / TSPluginDSOReloadEnable to override DSO remap dynamic reload. #6880
Conversation
defefbc
to
8b8acb2
Compare
[approve ci autest] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does @gtenev need to approve this also?
sure! @SolidWallOfCode, I will be glad to review. |
Description | ||
=========== | ||
|
||
:func:`TSPluginDSOReloadEnable` Set a flag to disable(`false`)/enable(`true`) a particular mixed(Global/Remap) plugin to take part in the dynamic reload mechanism. This function must be called from inside the :func:`TSPluginInit`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the term "mixed (Global/Remap) plugin" is vague and confusing. There are plugins in our source tree that can already run as Global and Remap plugins at the same time without the need of disabling the Remap plugin reload mechanism, i.e. header_rewrite
and cachekey
plugins.
This API call actually provides the ability to enable or disable programmatically from within TSPluginInit
the dynamic reloading when the same Dynamic Share Object (DSO) is used as a remap plugin as well, overriding proxy.config.plugin.dynamic_reload_mode
configuration variable.
Also can we document its return code, so the function user would not have read the code to see that it would return TS_ERROR
if it is not called from inside TSPluginInit
? Even test that in a unit-test?
include/ts/ts.h
Outdated
@@ -162,6 +162,15 @@ int TSTrafficServerVersionGetPatch(void); | |||
*/ | |||
tsapi TSReturnCode TSPluginRegister(const TSPluginRegistrationInfo *plugin_info); | |||
|
|||
/** | |||
For plugins that are Global and Remap this function should be used to |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same problem here, it does not enable disable plugin reload for global plugins since they are not reloadable, it affects only Remap Plugin reloading, may be we can be detailed here again:
This API call actually provides the ability to enable or disable programmatically from within TSPluginInit the dynamic reloading when the same Dynamic Share Object (DSO) is used as a remap plugin as well, overriding proxy.config.plugin.dynamic_reload_mode configuration variable.
include/ts/ts.h
Outdated
disable the dynamic reload mechanism for caller plugin. | ||
|
||
@param enabled boolean flag. 0/false will disable the reload on the caller plugin. | ||
@return TS_ERROR if failed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
May be specify why would it fail? (not called as expected from TSPluginInit
)
src/traffic_server/InkAPI.cc
Outdated
@@ -1966,6 +1966,23 @@ TSPluginRegister(const TSPluginRegistrationInfo *plugin_info) | |||
return TS_SUCCESS; | |||
} | |||
|
|||
//////////////////////////////////////////////////////////////////// |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You have already properly added Doxygen documentation in ts.h
(we could do it either here or in the header to avoid updating 2 places). It seems that in this file this comment style (/////...
) is often used for documenting a group of functions, may be we can come up with more generic comment here?
proxy/http/remap/PluginFactory.cc
Outdated
@@ -259,6 +272,15 @@ PluginFactory::findByEffectivePath(const fs::path &path, bool dynamicReloadEnabl | |||
return PluginDso::loadedPlugins()->findByEffectivePath(path, dynamicReloadEnabled); | |||
} | |||
|
|||
bool | |||
PluginFactory::isGlobalPluginDSOEnabled(const fs::path &path) const |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
isGlobalPluginDSOEnabled
feels nonsensical here, we don't actually enable or disable global plugins. This actually shows if the DSO that is used as a remap plugin will be reloadable. May be isPluginDSOReloadEnabled
?
proxy/http/remap/PluginFactory.cc
Outdated
PluginFactory::isGlobalPluginDSOEnabled(const fs::path &path) const | ||
{ | ||
const auto found = std::find_if(std::begin(this->optoutPlugins), std::end(this->optoutPlugins), | ||
[&path](const auto &info) { return info.fullPath == path; }); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are we sure that info.fullPath
is a canonical path (realpath)? If not this would not work as expected. path
in this case is referenced as "effective path" all across the new remap plugin reloading infrastructure (PluginFactory, PluginDSO, etc.), it is always a canonical path since it was meant to be unique and used as a key in searches.
proxy/http/remap/PluginFactory.cc
Outdated
@@ -82,7 +82,7 @@ RemapPluginInst::osResponse(TSHttpTxn rh, int os_response_type) | |||
_plugin.osResponse(_instance, rh, os_response_type); | |||
} | |||
|
|||
PluginFactory::PluginFactory() | |||
PluginFactory::PluginFactory(const DLL<PluginRegInfo> &globalPluginRegistry) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if we can redesign this to be simpler and more modular and avoid the unnecessary (AFAICT) coupling between the global plugin loading and remap plugin loading subsystems (please see my next comment).
proxy/http/remap/PluginFactory.cc
Outdated
@@ -94,6 +94,12 @@ PluginFactory::PluginFactory() | |||
} | |||
} | |||
|
|||
for (PluginRegInfo *plugin_info = globalPluginRegistry.head; plugin_info != nullptr; plugin_info = (plugin_info->link).next) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For this to work:
PluginRegInfo
had to be enhanced withdso_reloading_enabled
flagplugin_reg_list
had to be passed toPluginFactory
constructorPluginFactory
had to understand globalPluginRegInfo
internals.PluginFactory
would need to rebuild the local registryoptoutPlugins
on each config reload (by traversingplugin_reg_list
)
May be we can simplify this design (avoid all of the above) and get rid of the unnecessary coupling with the following idea?
We could move the local optoutPlugins
registry from PluginFactory
into LoadedPlugins
, a structure that already exists and survives the PluginFactory
instances, which is what we actually need.
We could add a method or methods to LoadedPlugins
interface to manipulate the registry from within TSPluginDSOReloadEnable
and then expose another LoadedPlugins
method to be called from the PluginFactory
to check if the plugin opted out from reloading when the remap plugin is instantiated.
@brbzull0, please feel free to ping me out-of-band, I will be glad to discuss!
8547938
to
f01cf5e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@brbzull0, looks good! Thank you for working on this feature and addressing the feedback!
WHEN("(1) loading v1, (2) overwriting with v2 and then (3) reloading by using the same plugin name, " | ||
"(*) v1 and v2 DSOs modification time are different (changed)") | ||
{ | ||
// disablePluginDynamicReload(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this copy-paste/testing remnant ?
…n variable `proxy.config.plugin.dynamic_reload_mode` for a particular plugin.
f01cf5e
to
42104bb
Compare
* master: Make tls_conn_timeout test more reliable in CI (#7018) Remove deprecated verify.server for 9.0 (#7040) Updated GitHub description and homepage URL to be https (#7019) Add virtual destructor to QUICTPConfig. (#7036) Fix code to eliminate warning and enable feature (#7031) add a null check to avoid crashing (#7035) Squashed commit of the following: (#7000) Fixed problem with all "forced" volumes cache (#7028) Spacing tweaks to acl_filter_rule::print (#7026) Removes dead code from iocore/dns (#7025) Removes TODO (#7027) Add logic to resolve content-length transfer-encoding conflicts on response (#6992) Add memory_profile plugin (#7014) Fix typos relating to tls_bridge (#7011) slice: clean up of created 502 response header (#6919) Add new API / TSPluginDSOReloadEnable that overrides the configuration variable `proxy.config.plugin.dynamic_reload_mode` for a particular plugin. (#6880) Remove incorrect assert in inactivity timeout handling (#7012) Removes use of SPLIT_DNS macro (#7010) Fixed core when sending back a redirect and having an invalid server response (#7004) slice: fix throttle not work (#7008) Updates to thread scale factor (#7007) Added tasks and launch files for vscode, to configure, build and debug (#7005) NextHop Strategy Refactor and Fixes (#6782) Make the setting of the continuation handler safer. (#6996) ProtocolStack n -> count (#7006) Fix volume/stripe calcs when using forced volumes (#6995) Cleanup: Write error message on diags output instead of stderr (#6997) Conflicts: iocore/net/P_QUICNetVConnection.h iocore/net/P_QUICPacketHandler.h iocore/net/QUICNetProcessor.cc iocore/net/QUICNetVConnection.cc iocore/net/QUICPacketHandler.cc iocore/net/quic/Mock.h iocore/net/quic/QUICCongestionController.h iocore/net/quic/QUICContext.cc iocore/net/quic/QUICContext.h iocore/net/quic/QUICDebugNames.cc iocore/net/quic/QUICFrame.cc iocore/net/quic/QUICHandshake.cc iocore/net/quic/QUICKeyGenerator.h iocore/net/quic/QUICLossDetector.cc iocore/net/quic/QUICLossDetector.h iocore/net/quic/QUICNewRenoCongestionController.cc iocore/net/quic/QUICPacket.cc iocore/net/quic/QUICPacket.h iocore/net/quic/QUICPacketFactory.cc iocore/net/quic/QUICPacketFactory.h iocore/net/quic/QUICRetryIntegrityTag.cc iocore/net/quic/QUICRetryIntegrityTag.h iocore/net/quic/QUICTLS.h iocore/net/quic/QUICTLS_boringssl.cc iocore/net/quic/QUICTLS_openssl.cc iocore/net/quic/QUICTransportParameters.cc iocore/net/quic/QUICTransportParameters.h iocore/net/quic/QUICTypes.cc iocore/net/quic/QUICTypes.h iocore/net/quic/qlog/QLogListener.h iocore/net/quic/test/test_QUICHandshakeProtocol.cc iocore/net/quic/test/test_QUICLossDetector.cc iocore/net/quic/test/test_QUICPacket.cc iocore/net/quic/test/test_QUICPacketFactory.cc iocore/net/quic/test/test_QUICPacketHeaderProtector.cc iocore/net/quic/test/test_QUICStreamManager.cc iocore/net/quic/test/test_QUICVersionNegotiator.cc proxy/http/HttpProxyServerMain.cc src/traffic_quic/quic_client.cc src/tscore/ink_inet.cc
Cherry-picked to v9.0.x branch. Needed for other PRs to merge. |
commit 8c114c0 Merge: f39e397 b527464 Author: Masakazu Kitajo <maskit@apache.org> Date: Thu Aug 13 07:31:56 2020 +0900 Merge branch 'master' into quic-latest * master: Adding autopep8 as a pre-commit hook. (apache#7071) Refresh proxy protocol diagram (apache#7095) Skip docs builds if there are no changes in the doc dir and files it includes (apache#7088) Remove more deadcode (apache#7098) destroy threads after job done (apache#7083) Fix compilation error - missing '&' operator (apache#7093) Adds description for ssl_ticket_number in ssl_multicert docs (apache#7091) Ran clang-tidy over the source tree (apache#7077) Move the direct self loop check later to HttpSM::do_http_server_open just before connection upstream. (apache#7069) commit f39e397 Merge: d09a757 2219cee Author: Masakazu Kitajo <maskit@apache.org> Date: Thu Aug 6 09:08:46 2020 +0900 Merge branch 'master' into quic-latest * master: Signal WRITE_COMPLETE regardless of transmission progress (apache#7062) Converts files to #pragma once (apache#7089) Fix eval_ip compile - missing const. (apache#7087) Fix a crash on connection migration to the advertised preferred address (apache#7080) Update and run the autopep8 make target (apache#7070) Fixes no_content_length status code description in docs (apache#7086) const-ify quic/http3 code (apache#7084) Fixes build warnings in maxmind_acl (apache#7085) Add TS_USE_QUIC to traffic_layout info (apache#7074) Added support for out of tree builds with vscode (apache#7072) constify Print() methods and other low hanging fruit (apache#7068) Updating to AuTest 1.8.1. (apache#7065) Use system include-style for STL and OpenSSL headers (apache#7066) tests: gitignore ssl-delay-server binary (apache#7067) Conflicts: iocore/net/quic/QUICLossDetector.cc iocore/net/quic/QUICLossDetector.h commit d09a757 Author: Randall Meyer <rrm@apache.org> Date: Tue Aug 4 13:52:53 2020 -0700 const-ify quic/http3 code (apache#7079) commit 84e4c8e Merge: 50937c0 3087f16 Author: Masakazu Kitajo <maskit@apache.org> Date: Fri Jul 31 10:24:13 2020 +0900 Merge branch 'master' into quic-latest * master: Fix a crash on active timeout on QUIC connections (apache#7059) Don't make an error on receiving retransmitted handshake data (apache#7061) Document proxy.config.http.cache.post_method. (apache#7060) Quote out lists of servers and domains in splitdns.config example (apache#7057) Fix proxy.process.http.current_client_connections (apache#7056) Fixed CLIENT-URL to use the pristine client URL (apache#7050) Removes FIXME that is unlikely to be fixed at this point in the project history (apache#7058) Move to denylists and allowlists (apache#7034) Avoid unnecessary copying of STL map for QUICTPConfigQCP class. (apache#7039) commit 50937c0 Merge: f6e1744 9467a2c Author: Masakazu Kitajo <maskit@apache.org> Date: Tue Jul 28 10:08:26 2020 +0900 Merge branch 'master' into quic-latest * master: Fixes spelling/license formatting in traffic_dump plugin (apache#7047) Fixes spelling in docs (apache#7048) Fixes spelling H3-related code (apache#7046) Cleans up various versions checks (apache#7049) Fix a typo (apache#7043) Conflicts: iocore/net/quic/QUICHandshake.cc iocore/net/quic/QUICLossDetector.cc iocore/net/quic/QUICNewRenoCongestionController.cc iocore/net/quic/test/test_QUICPacketFactory.cc commit f6e1744 Merge: 83e1da7 549c626 Author: Masakazu Kitajo <maskit@apache.org> Date: Mon Jul 27 11:11:58 2020 +0900 Merge branch 'master' into quic-latest * master: Make tls_conn_timeout test more reliable in CI (apache#7018) Remove deprecated verify.server for 9.0 (apache#7040) Updated GitHub description and homepage URL to be https (apache#7019) Add virtual destructor to QUICTPConfig. (apache#7036) Fix code to eliminate warning and enable feature (apache#7031) add a null check to avoid crashing (apache#7035) Squashed commit of the following: (apache#7000) Fixed problem with all "forced" volumes cache (apache#7028) Spacing tweaks to acl_filter_rule::print (apache#7026) Removes dead code from iocore/dns (apache#7025) Removes TODO (apache#7027) Add logic to resolve content-length transfer-encoding conflicts on response (apache#6992) Add memory_profile plugin (apache#7014) Fix typos relating to tls_bridge (apache#7011) slice: clean up of created 502 response header (apache#6919) Add new API / TSPluginDSOReloadEnable that overrides the configuration variable `proxy.config.plugin.dynamic_reload_mode` for a particular plugin. (apache#6880) Remove incorrect assert in inactivity timeout handling (apache#7012) Removes use of SPLIT_DNS macro (apache#7010) Fixed core when sending back a redirect and having an invalid server response (apache#7004) slice: fix throttle not work (apache#7008) Updates to thread scale factor (apache#7007) Added tasks and launch files for vscode, to configure, build and debug (apache#7005) NextHop Strategy Refactor and Fixes (apache#6782) Make the setting of the continuation handler safer. (apache#6996) ProtocolStack n -> count (apache#7006) Fix volume/stripe calcs when using forced volumes (apache#6995) Cleanup: Write error message on diags output instead of stderr (apache#6997) Conflicts: iocore/net/P_QUICNetVConnection.h iocore/net/P_QUICPacketHandler.h iocore/net/QUICNetProcessor.cc iocore/net/QUICNetVConnection.cc iocore/net/QUICPacketHandler.cc iocore/net/quic/Mock.h iocore/net/quic/QUICCongestionController.h iocore/net/quic/QUICContext.cc iocore/net/quic/QUICContext.h iocore/net/quic/QUICDebugNames.cc iocore/net/quic/QUICFrame.cc iocore/net/quic/QUICHandshake.cc iocore/net/quic/QUICKeyGenerator.h iocore/net/quic/QUICLossDetector.cc iocore/net/quic/QUICLossDetector.h iocore/net/quic/QUICNewRenoCongestionController.cc iocore/net/quic/QUICPacket.cc iocore/net/quic/QUICPacket.h iocore/net/quic/QUICPacketFactory.cc iocore/net/quic/QUICPacketFactory.h iocore/net/quic/QUICRetryIntegrityTag.cc iocore/net/quic/QUICRetryIntegrityTag.h iocore/net/quic/QUICTLS.h iocore/net/quic/QUICTLS_boringssl.cc iocore/net/quic/QUICTLS_openssl.cc iocore/net/quic/QUICTransportParameters.cc iocore/net/quic/QUICTransportParameters.h iocore/net/quic/QUICTypes.cc iocore/net/quic/QUICTypes.h iocore/net/quic/qlog/QLogListener.h iocore/net/quic/test/test_QUICHandshakeProtocol.cc iocore/net/quic/test/test_QUICLossDetector.cc iocore/net/quic/test/test_QUICPacket.cc iocore/net/quic/test/test_QUICPacketFactory.cc iocore/net/quic/test/test_QUICPacketHeaderProtector.cc iocore/net/quic/test/test_QUICStreamManager.cc iocore/net/quic/test/test_QUICVersionNegotiator.cc proxy/http/HttpProxyServerMain.cc src/traffic_quic/quic_client.cc src/tscore/ink_inet.cc commit 83e1da7 Author: Masakazu Kitajo <maskit@apache.org> Date: Wed Jul 22 23:26:56 2020 +0900 Fix a crash on path validation commit c74bd89 Author: Masakazu Kitajo <maskit@apache.org> Date: Wed Jul 22 23:19:05 2020 +0900 Fix a crash on traffic_quic commit b4a0c8c Author: Masakazu Kitajo <maskit@apache.org> Date: Wed Jul 22 16:37:02 2020 +0900 Update Congestion Control logic to draft-29 commit 53da240 Author: Masakazu Kitajo <maskit@apache.org> Date: Wed Jul 22 11:40:18 2020 +0900 Adjust debug log verbosity commit 92a34b0 Author: Masakazu Kitajo <maskit@apache.org> Date: Tue Jul 21 12:04:00 2020 +0900 Fix infinite PING commit 42c4054 Author: Masakazu Kitajo <maskit@apache.org> Date: Thu Jul 9 10:16:04 2020 +0900 Update Loss Detection logic to draft-29 commit e8109c0 Author: Masakazu Kitajo <maskit@apache.org> Date: Fri Jun 26 10:57:42 2020 +0900 Update tests commit 3a8cb4a Author: Masakazu Kitajo <maskit@apache.org> Date: Thu Jun 25 14:58:47 2020 +0900 Use different keys and nonces for Draft-27 and Draft-29 commit 37af625 Author: Masakazu Kitajo <maskit@apache.org> Date: Thu Jun 25 14:14:57 2020 +0900 Use different salts for Draft-27 and Draft-29 commit 52e57fe Author: Masakazu Kitajo <maskit@apache.org> Date: Mon Jun 22 11:53:43 2020 +0900 Rename SERVER_BUSY to CONNECTION_REFUSED commit e5fb638 Author: Masakazu Kitajo <maskit@apache.org> Date: Mon Jun 22 11:50:38 2020 +0900 Update QUIC draft version numbers to 29 commit a9ef9b0 Author: Masakazu Kitajo <maskit@apache.org> Date: Fri Jul 10 17:21:46 2020 +0900 Update code for BoringSSL commit 58cac98 Author: Masakazu Kitajo <maskit@apache.org> Date: Thu Jun 4 11:24:16 2020 +0900 Don't include exercise version number provided by a client into VN packet commit 47e1eb7 Author: Masakazu Kitajo <maskit@apache.org> Date: Thu Jun 4 10:45:14 2020 +0900 Updates tests and fixes a couple of typoes commit f41ca7b Author: Masakazu Kitajo <maskit@apache.org> Date: Mon Jun 1 12:46:32 2020 +0900 Support both QUIC draft-27 and draft-28 commit 3a5b3c7 Author: Masakazu Kitajo <maskit@apache.org> Date: Thu May 28 13:57:57 2020 +0900 Add QUIC APPLICATION_ERROR error code commit 0457e74 Author: Masakazu Kitajo <maskit@apache.org> Date: Thu May 28 13:33:02 2020 +0900 Add support for new Transport Parameters on draft-28 commit 2717ecc Author: Masakazu Kitajo <maskit@apache.org> Date: Mon May 25 11:46:49 2020 +0900 Rename QUIC Transport Parameters ORIGINAL_CONNECTION_ID -> ORIGINAL_DESTINATION_CONNECTION_ID MAX_PACKET_SIZE -> MAX_UDP_PAYLOAD_SIZE commit 9ef2167 Author: Masakazu Kitajo <maskit@apache.org> Date: Mon May 25 10:34:54 2020 +0900 Update QUIC draft version numbers to 28
commit 4d579f4 Author: Masakazu Kitajo <maskit@apache.org> Date: Thu Aug 13 08:32:58 2020 +0900 Fix docs commit 8c114c0 Merge: f39e397 b527464 Author: Masakazu Kitajo <maskit@apache.org> Date: Thu Aug 13 07:31:56 2020 +0900 Merge branch 'master' into quic-latest * master: Adding autopep8 as a pre-commit hook. (apache#7071) Refresh proxy protocol diagram (apache#7095) Skip docs builds if there are no changes in the doc dir and files it includes (apache#7088) Remove more deadcode (apache#7098) destroy threads after job done (apache#7083) Fix compilation error - missing '&' operator (apache#7093) Adds description for ssl_ticket_number in ssl_multicert docs (apache#7091) Ran clang-tidy over the source tree (apache#7077) Move the direct self loop check later to HttpSM::do_http_server_open just before connection upstream. (apache#7069) commit f39e397 Merge: d09a757 2219cee Author: Masakazu Kitajo <maskit@apache.org> Date: Thu Aug 6 09:08:46 2020 +0900 Merge branch 'master' into quic-latest * master: Signal WRITE_COMPLETE regardless of transmission progress (apache#7062) Converts files to #pragma once (apache#7089) Fix eval_ip compile - missing const. (apache#7087) Fix a crash on connection migration to the advertised preferred address (apache#7080) Update and run the autopep8 make target (apache#7070) Fixes no_content_length status code description in docs (apache#7086) const-ify quic/http3 code (apache#7084) Fixes build warnings in maxmind_acl (apache#7085) Add TS_USE_QUIC to traffic_layout info (apache#7074) Added support for out of tree builds with vscode (apache#7072) constify Print() methods and other low hanging fruit (apache#7068) Updating to AuTest 1.8.1. (apache#7065) Use system include-style for STL and OpenSSL headers (apache#7066) tests: gitignore ssl-delay-server binary (apache#7067) Conflicts: iocore/net/quic/QUICLossDetector.cc iocore/net/quic/QUICLossDetector.h commit d09a757 Author: Randall Meyer <rrm@apache.org> Date: Tue Aug 4 13:52:53 2020 -0700 const-ify quic/http3 code (apache#7079) commit 84e4c8e Merge: 50937c0 3087f16 Author: Masakazu Kitajo <maskit@apache.org> Date: Fri Jul 31 10:24:13 2020 +0900 Merge branch 'master' into quic-latest * master: Fix a crash on active timeout on QUIC connections (apache#7059) Don't make an error on receiving retransmitted handshake data (apache#7061) Document proxy.config.http.cache.post_method. (apache#7060) Quote out lists of servers and domains in splitdns.config example (apache#7057) Fix proxy.process.http.current_client_connections (apache#7056) Fixed CLIENT-URL to use the pristine client URL (apache#7050) Removes FIXME that is unlikely to be fixed at this point in the project history (apache#7058) Move to denylists and allowlists (apache#7034) Avoid unnecessary copying of STL map for QUICTPConfigQCP class. (apache#7039) commit 50937c0 Merge: f6e1744 9467a2c Author: Masakazu Kitajo <maskit@apache.org> Date: Tue Jul 28 10:08:26 2020 +0900 Merge branch 'master' into quic-latest * master: Fixes spelling/license formatting in traffic_dump plugin (apache#7047) Fixes spelling in docs (apache#7048) Fixes spelling H3-related code (apache#7046) Cleans up various versions checks (apache#7049) Fix a typo (apache#7043) Conflicts: iocore/net/quic/QUICHandshake.cc iocore/net/quic/QUICLossDetector.cc iocore/net/quic/QUICNewRenoCongestionController.cc iocore/net/quic/test/test_QUICPacketFactory.cc commit f6e1744 Merge: 83e1da7 549c626 Author: Masakazu Kitajo <maskit@apache.org> Date: Mon Jul 27 11:11:58 2020 +0900 Merge branch 'master' into quic-latest * master: Make tls_conn_timeout test more reliable in CI (apache#7018) Remove deprecated verify.server for 9.0 (apache#7040) Updated GitHub description and homepage URL to be https (apache#7019) Add virtual destructor to QUICTPConfig. (apache#7036) Fix code to eliminate warning and enable feature (apache#7031) add a null check to avoid crashing (apache#7035) Squashed commit of the following: (apache#7000) Fixed problem with all "forced" volumes cache (apache#7028) Spacing tweaks to acl_filter_rule::print (apache#7026) Removes dead code from iocore/dns (apache#7025) Removes TODO (apache#7027) Add logic to resolve content-length transfer-encoding conflicts on response (apache#6992) Add memory_profile plugin (apache#7014) Fix typos relating to tls_bridge (apache#7011) slice: clean up of created 502 response header (apache#6919) Add new API / TSPluginDSOReloadEnable that overrides the configuration variable `proxy.config.plugin.dynamic_reload_mode` for a particular plugin. (apache#6880) Remove incorrect assert in inactivity timeout handling (apache#7012) Removes use of SPLIT_DNS macro (apache#7010) Fixed core when sending back a redirect and having an invalid server response (apache#7004) slice: fix throttle not work (apache#7008) Updates to thread scale factor (apache#7007) Added tasks and launch files for vscode, to configure, build and debug (apache#7005) NextHop Strategy Refactor and Fixes (apache#6782) Make the setting of the continuation handler safer. (apache#6996) ProtocolStack n -> count (apache#7006) Fix volume/stripe calcs when using forced volumes (apache#6995) Cleanup: Write error message on diags output instead of stderr (apache#6997) Conflicts: iocore/net/P_QUICNetVConnection.h iocore/net/P_QUICPacketHandler.h iocore/net/QUICNetProcessor.cc iocore/net/QUICNetVConnection.cc iocore/net/QUICPacketHandler.cc iocore/net/quic/Mock.h iocore/net/quic/QUICCongestionController.h iocore/net/quic/QUICContext.cc iocore/net/quic/QUICContext.h iocore/net/quic/QUICDebugNames.cc iocore/net/quic/QUICFrame.cc iocore/net/quic/QUICHandshake.cc iocore/net/quic/QUICKeyGenerator.h iocore/net/quic/QUICLossDetector.cc iocore/net/quic/QUICLossDetector.h iocore/net/quic/QUICNewRenoCongestionController.cc iocore/net/quic/QUICPacket.cc iocore/net/quic/QUICPacket.h iocore/net/quic/QUICPacketFactory.cc iocore/net/quic/QUICPacketFactory.h iocore/net/quic/QUICRetryIntegrityTag.cc iocore/net/quic/QUICRetryIntegrityTag.h iocore/net/quic/QUICTLS.h iocore/net/quic/QUICTLS_boringssl.cc iocore/net/quic/QUICTLS_openssl.cc iocore/net/quic/QUICTransportParameters.cc iocore/net/quic/QUICTransportParameters.h iocore/net/quic/QUICTypes.cc iocore/net/quic/QUICTypes.h iocore/net/quic/qlog/QLogListener.h iocore/net/quic/test/test_QUICHandshakeProtocol.cc iocore/net/quic/test/test_QUICLossDetector.cc iocore/net/quic/test/test_QUICPacket.cc iocore/net/quic/test/test_QUICPacketFactory.cc iocore/net/quic/test/test_QUICPacketHeaderProtector.cc iocore/net/quic/test/test_QUICStreamManager.cc iocore/net/quic/test/test_QUICVersionNegotiator.cc proxy/http/HttpProxyServerMain.cc src/traffic_quic/quic_client.cc src/tscore/ink_inet.cc commit 83e1da7 Author: Masakazu Kitajo <maskit@apache.org> Date: Wed Jul 22 23:26:56 2020 +0900 Fix a crash on path validation commit c74bd89 Author: Masakazu Kitajo <maskit@apache.org> Date: Wed Jul 22 23:19:05 2020 +0900 Fix a crash on traffic_quic commit b4a0c8c Author: Masakazu Kitajo <maskit@apache.org> Date: Wed Jul 22 16:37:02 2020 +0900 Update Congestion Control logic to draft-29 commit 53da240 Author: Masakazu Kitajo <maskit@apache.org> Date: Wed Jul 22 11:40:18 2020 +0900 Adjust debug log verbosity commit 92a34b0 Author: Masakazu Kitajo <maskit@apache.org> Date: Tue Jul 21 12:04:00 2020 +0900 Fix infinite PING commit 42c4054 Author: Masakazu Kitajo <maskit@apache.org> Date: Thu Jul 9 10:16:04 2020 +0900 Update Loss Detection logic to draft-29 commit e8109c0 Author: Masakazu Kitajo <maskit@apache.org> Date: Fri Jun 26 10:57:42 2020 +0900 Update tests commit 3a8cb4a Author: Masakazu Kitajo <maskit@apache.org> Date: Thu Jun 25 14:58:47 2020 +0900 Use different keys and nonces for Draft-27 and Draft-29 commit 37af625 Author: Masakazu Kitajo <maskit@apache.org> Date: Thu Jun 25 14:14:57 2020 +0900 Use different salts for Draft-27 and Draft-29 commit 52e57fe Author: Masakazu Kitajo <maskit@apache.org> Date: Mon Jun 22 11:53:43 2020 +0900 Rename SERVER_BUSY to CONNECTION_REFUSED commit e5fb638 Author: Masakazu Kitajo <maskit@apache.org> Date: Mon Jun 22 11:50:38 2020 +0900 Update QUIC draft version numbers to 29 commit a9ef9b0 Author: Masakazu Kitajo <maskit@apache.org> Date: Fri Jul 10 17:21:46 2020 +0900 Update code for BoringSSL commit 58cac98 Author: Masakazu Kitajo <maskit@apache.org> Date: Thu Jun 4 11:24:16 2020 +0900 Don't include exercise version number provided by a client into VN packet commit 47e1eb7 Author: Masakazu Kitajo <maskit@apache.org> Date: Thu Jun 4 10:45:14 2020 +0900 Updates tests and fixes a couple of typoes commit f41ca7b Author: Masakazu Kitajo <maskit@apache.org> Date: Mon Jun 1 12:46:32 2020 +0900 Support both QUIC draft-27 and draft-28 commit 3a5b3c7 Author: Masakazu Kitajo <maskit@apache.org> Date: Thu May 28 13:57:57 2020 +0900 Add QUIC APPLICATION_ERROR error code commit 0457e74 Author: Masakazu Kitajo <maskit@apache.org> Date: Thu May 28 13:33:02 2020 +0900 Add support for new Transport Parameters on draft-28 commit 2717ecc Author: Masakazu Kitajo <maskit@apache.org> Date: Mon May 25 11:46:49 2020 +0900 Rename QUIC Transport Parameters ORIGINAL_CONNECTION_ID -> ORIGINAL_DESTINATION_CONNECTION_ID MAX_PACKET_SIZE -> MAX_UDP_PAYLOAD_SIZE commit 9ef2167 Author: Masakazu Kitajo <maskit@apache.org> Date: Mon May 25 10:34:54 2020 +0900 Update QUIC draft version numbers to 28
…n variable `proxy.config.plugin.dynamic_reload_mode` for a particular plugin. (apache#6880)
…n variable `proxy.config.plugin.dynamic_reload_mode` for a particular plugin. (apache#6880)
* asf/9.0.x: Updated ChangeLog Document proxy.config.http.cache.post_method. (apache#7060) Move to denylists and allowlists (apache#7034) Fixes spelling in docs (apache#7048) Add new API / TSPluginDSOReloadEnable that overrides the configuration variable `proxy.config.plugin.dynamic_reload_mode` for a particular plugin. (apache#6880) Remove deprecated verify.server for 9.0 (apache#7040) Add memory_profile plugin (apache#7014) Add maxmind acl plugin (apache#6980) Fix proxy.process.http.current_client_connections (apache#7056) Quote out lists of servers and domains in splitdns.config example (apache#7057) Don't make an error on receiving retransmitted handshake data (apache#7061) Fix a crash on active timeout on QUIC connections (apache#7059) Fixed CLIENT-URL to use the pristine client URL (apache#7050) Fix up autest - Should fix autest on 9.0.x (apache#7022)
This PR adds a new TS API that let a particular Global and Remap plugin to override the configuration
proxy.config.plugin.dynamic_reload_mode
to control whether this plugin will take part on the DSO dynamic remap plugin reload process or not.