Skip to content
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

Conversation

brbzull0
Copy link
Contributor

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.

@brbzull0 brbzull0 force-pushed the dmeden/add-api-to-disable-mixedplugin-from-dynamic-reload branch 2 times, most recently from defefbc to 8b8acb2 Compare June 10, 2020 15:24
@bryancall bryancall added this to the 10.0.0 milestone Jun 10, 2020
@gtenev gtenev self-requested a review June 11, 2020 17:06
@shinrich
Copy link
Member

[approve ci autest]

Copy link
Member

@SolidWallOfCode SolidWallOfCode left a 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?

@gtenev
Copy link
Contributor

gtenev commented Jun 25, 2020

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`.
Copy link
Contributor

@gtenev gtenev Jun 26, 2020

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
Copy link
Contributor

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.
Copy link
Contributor

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)

@@ -1966,6 +1966,23 @@ TSPluginRegister(const TSPluginRegistrationInfo *plugin_info)
return TS_SUCCESS;
}

////////////////////////////////////////////////////////////////////
Copy link
Contributor

@gtenev gtenev Jun 26, 2020

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?

@@ -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
Copy link
Contributor

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?

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; });
Copy link
Contributor

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.

@@ -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)
Copy link
Contributor

@gtenev gtenev Jun 26, 2020

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).

@@ -94,6 +94,12 @@ PluginFactory::PluginFactory()
}
}

for (PluginRegInfo *plugin_info = globalPluginRegistry.head; plugin_info != nullptr; plugin_info = (plugin_info->link).next) {
Copy link
Contributor

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 with dso_reloading_enabled flag
  • plugin_reg_list had to be passed to PluginFactory constructor
  • PluginFactory had to understand global PluginRegInfo internals.
  • PluginFactory would need to rebuild the local registry optoutPlugins on each config reload (by traversing plugin_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!

@brbzull0 brbzull0 force-pushed the dmeden/add-api-to-disable-mixedplugin-from-dynamic-reload branch 2 times, most recently from 8547938 to f01cf5e Compare July 8, 2020 12:39
gtenev
gtenev previously approved these changes Jul 13, 2020
Copy link
Contributor

@gtenev gtenev left a 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();
Copy link
Contributor

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.
@brbzull0 brbzull0 force-pushed the dmeden/add-api-to-disable-mixedplugin-from-dynamic-reload branch from f01cf5e to 42104bb Compare July 14, 2020 10:25
@bryancall bryancall merged commit acd5617 into apache:master Jul 17, 2020
maskit added a commit that referenced this pull request Jul 27, 2020
* 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
zwoop pushed a commit that referenced this pull request Aug 4, 2020
…n variable `proxy.config.plugin.dynamic_reload_mode` for a particular plugin. (#6880)

(cherry picked from commit acd5617)
@zwoop zwoop modified the milestones: 10.0.0, 9.0.0 Aug 4, 2020
@zwoop
Copy link
Contributor

zwoop commented Aug 4, 2020

Cherry-picked to v9.0.x branch.

Needed for other PRs to merge.

maskit added a commit to maskit/trafficserver that referenced this pull request Aug 12, 2020
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
maskit added a commit to maskit/trafficserver that referenced this pull request Aug 12, 2020
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
brbzull0 added a commit to brbzull0/trafficserver that referenced this pull request Sep 2, 2020
…n variable `proxy.config.plugin.dynamic_reload_mode` for a particular plugin. (apache#6880)
whutwhu pushed a commit to whutwhu/trafficserver that referenced this pull request Nov 1, 2020
…n variable `proxy.config.plugin.dynamic_reload_mode` for a particular plugin. (apache#6880)
masaori335 pushed a commit to masaori335/trafficserver that referenced this pull request Jan 26, 2021
* 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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants