[trafficserver] branch 9.0.x updated: Updated ChangeLog
This is an automated email from the ASF dual-hosted git repository. zwoop pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git The following commit(s) were added to refs/heads/9.0.x by this push: new 294723f Updated ChangeLog 294723f is described below commit 294723fdefd86c11153b297c88bcabca7cceb7aa Author: Leif Hedstrom AuthorDate: Fri Oct 23 11:01:22 2020 -0600 Updated ChangeLog --- CHANGELOG-9.0.0 | 5 + 1 file changed, 5 insertions(+) diff --git a/CHANGELOG-9.0.0 b/CHANGELOG-9.0.0 index f895217..8dd7b9f 100644 --- a/CHANGELOG-9.0.0 +++ b/CHANGELOG-9.0.0 @@ -1016,6 +1016,7 @@ Changes with Apache Traffic Server 9.0.0 #6980 - Add maxmind acl plugin #6981 - Update autest to version 1.8.0 #6984 - Fix out of source tree builds for QUIC + #6988 - Fix a build issue with BoringSSL #6994 - Adds null check #7000 - Add QUIC draft-27 support #7004 - Fixed core when sending back a redirect and having an invalid server response @@ -1109,13 +1110,17 @@ Changes with Apache Traffic Server 9.0.0 #7222 - Running autopep8 on the 9.0.x branch. #7224 - Fix renamed setting in default config #7225 - Increment ssl_error_syscall only if not EOF + #7237 - Fix bad HTTP/2 post client causing stuck HttpSM #7238 - Supporting out of source builds for AuTests. #7243 - RolledLogDeleter: do not sort on each candidate consideration. #7252 - Remove some useless defines, which just obfuscates code #7258 - Fix proxy.process.http.current_client_transactions #7260 - Treat objects with negative max-age CC directives as stale. + #7261 - Sticky server does not work with H2 client + #7263 - HostDB: Fix cache data version checking to use full version, not only major version. #7266 - Allow initial // in request targets. #7269 - gracefully handle TSReleaseAsserts in statichit and generator plugins #7274 - Introduce proxy-verifier to AuTests #7275 - Respecting default rolling_enabled value in plugins. #7278 - 7096: Synchronize Server Session Management and Network I/O + #7293 - sphinx for 9.x has to be 2.0.1
[trafficserver] branch 9.0.x updated: sphinx for 9.x has to be 2.0.1 (#7293)
This is an automated email from the ASF dual-hosted git repository. zwoop pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git The following commit(s) were added to refs/heads/9.0.x by this push: new 0dcdf29 sphinx for 9.x has to be 2.0.1 (#7293) 0dcdf29 is described below commit 0dcdf2966e4e3cc2af9a06345c488361d2e7474d Author: dragon512 AuthorDate: Fri Oct 23 11:31:52 2020 -0500 sphinx for 9.x has to be 2.0.1 (#7293) --- doc/Pipfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/Pipfile b/doc/Pipfile index 78be762..f938473 100644 --- a/doc/Pipfile +++ b/doc/Pipfile @@ -22,7 +22,7 @@ verify_ssl = true [dev-packages] [packages] -sphinx = "*" +sphinx = "2.0.1" sphinx-rtd-theme = "*" sphinxcontrib-plantuml = "*" # i18n
[trafficserver] branch 9.0.x updated: HostDB: Fix cache data version checking to use full version, not major version. (#7263)
This is an automated email from the ASF dual-hosted git repository. zwoop pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git The following commit(s) were added to refs/heads/9.0.x by this push: new db3b5a1 HostDB: Fix cache data version checking to use full version, not major version. (#7263) db3b5a1 is described below commit db3b5a19f67f0e63150867886c6bc0779be406ed Author: Alan M. Carroll AuthorDate: Fri Oct 9 14:02:41 2020 -0500 HostDB: Fix cache data version checking to use full version, not major version. (#7263) (cherry picked from commit 439e317d5d91d3732fc23f70f3137ab2f727bfbe) --- iocore/hostdb/P_RefCountCache.h | 4 ++-- iocore/hostdb/RefCountCache.cc | 9 - 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/iocore/hostdb/P_RefCountCache.h b/iocore/hostdb/P_RefCountCache.h index 9807382..9cbedb4 100644 --- a/iocore/hostdb/P_RefCountCache.h +++ b/iocore/hostdb/P_RefCountCache.h @@ -373,8 +373,8 @@ public: ts::VersionNumber object_version; // version passed in of whatever it is we are caching RefCountCacheHeader(ts::VersionNumber object_version = ts::VersionNumber()); - bool operator==(const RefCountCacheHeader other) const; - bool compatible(RefCountCacheHeader *other) const; + bool operator==(RefCountCacheHeader const ) const; + bool compatible(RefCountCacheHeader *that) const; }; // RefCountCache is a ref-counted key->value map to store classes that inherit from RefCountObj. diff --git a/iocore/hostdb/RefCountCache.cc b/iocore/hostdb/RefCountCache.cc index b7cecae..af9cf0f 100644 --- a/iocore/hostdb/RefCountCache.cc +++ b/iocore/hostdb/RefCountCache.cc @@ -41,14 +41,13 @@ RefCountCacheHashEntry::dealloc(RefCountCacheHashEntry *e) RefCountCacheHeader::RefCountCacheHeader(ts::VersionNumber object_version) : object_version(object_version){}; bool -RefCountCacheHeader::operator==(const RefCountCacheHeader other) const +RefCountCacheHeader::operator==(RefCountCacheHeader const ) const { - return this->magic == other.magic && this->version == other.version; + return this->magic == that.magic && this->version == that.version; } bool -RefCountCacheHeader::compatible(RefCountCacheHeader *other) const +RefCountCacheHeader::compatible(RefCountCacheHeader *that) const { - return (this->magic == other->magic && this->version._major == other->version._major && - this->object_version._major == other->version._major); + return this->magic == that->magic && this->version == that->version && this->object_version == that->version; };
[trafficserver] branch 9.0.x updated: Fix a build issue with BoringSSL (#6988)
This is an automated email from the ASF dual-hosted git repository. zwoop pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git The following commit(s) were added to refs/heads/9.0.x by this push: new 5e0e562 Fix a build issue with BoringSSL (#6988) 5e0e562 is described below commit 5e0e5626c27805e43824d200ca9f8adf6768ed3d Author: Masakazu Kitajo AuthorDate: Fri Jul 10 09:04:02 2020 +0900 Fix a build issue with BoringSSL (#6988) sk_something_num in OpenSSL returns int but the one in BoringSSL returns size_t. (cherry picked from commit da888769f4a83c731e08fdddf5d038cf64fa8b06) --- tests/tools/plugins/ssl_client_verify_test.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/tools/plugins/ssl_client_verify_test.cc b/tests/tools/plugins/ssl_client_verify_test.cc index 17668b2..c9de34b 100644 --- a/tests/tools/plugins/ssl_client_verify_test.cc +++ b/tests/tools/plugins/ssl_client_verify_test.cc @@ -113,7 +113,8 @@ CB_client_verify(TSCont cont, TSEvent event, void *edata) STACK_OF(X509) *chain = X509_STORE_CTX_get1_chain(ctx); // X509 *cert = X509_STORE_CTX_get_current_cert(ctx); bool retval = false; -for (int i = 0; i < sk_X509_num(chain) && !retval; i++) { +// BoringSSL has sk_X509_num() return size_t. +for (int i = 0; i < static_cast(sk_X509_num(chain)) && !retval; i++) { auto cert = sk_X509_value(chain, i); retval= check_names(cert); }
[trafficserver] branch 9.0.x updated: Sticky server does not work with H2 client (#7261)
This is an automated email from the ASF dual-hosted git repository. zwoop pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git The following commit(s) were added to refs/heads/9.0.x by this push: new 60e73e9 Sticky server does not work with H2 client (#7261) 60e73e9 is described below commit 60e73e9dfd4c01fba046458e534645fae01f7a4d Author: Susan Hinrichs AuthorDate: Fri Oct 16 08:20:01 2020 -0500 Sticky server does not work with H2 client (#7261) (cherry picked from commit d285211b72c3db636623575ce5a69b2f3d74d4a0) --- doc/admin-guide/files/records.config.en.rst | 4 +++- proxy/ProxySession.cc | 3 ++- proxy/ProxySession.h| 2 +- proxy/ProxyTransaction.cc | 4 ++-- proxy/ProxyTransaction.h| 2 +- proxy/http/Http1ClientSession.cc| 3 ++- proxy/http/Http1ClientSession.h | 2 +- proxy/http/HttpSM.cc| 8 ++-- 8 files changed, 18 insertions(+), 10 deletions(-) diff --git a/doc/admin-guide/files/records.config.en.rst b/doc/admin-guide/files/records.config.en.rst index 610927f..09c0b21 100644 --- a/doc/admin-guide/files/records.config.en.rst +++ b/doc/admin-guide/files/records.config.en.rst @@ -977,7 +977,9 @@ mptcp .. ts:cv:: CONFIG proxy.config.http.attach_server_session_to_client INT 0 :overridable: - Control the re-use of an server session by a user agent (client) session. + Control the re-use of an server session by a user agent (client) session. Currently only applies to user + agents using HTTP/1.0 or HTTP/1.1. For other HTTP versions, the origin connection is always returned to the + session sharing pool or closed. If a user agent performs more than one HTTP transaction on its connection to |TS| a server session must be obtained for the second (and subsequent) transaction as for the first. This settings affects how that server session diff --git a/proxy/ProxySession.cc b/proxy/ProxySession.cc index 3d9c203..07af66a 100644 --- a/proxy/ProxySession.cc +++ b/proxy/ProxySession.cc @@ -200,9 +200,10 @@ ProxySession::connection_id() const return con_id; } -void +bool ProxySession::attach_server_session(Http1ServerSession *ssession, bool transaction_done) { + return false; } Http1ServerSession * diff --git a/proxy/ProxySession.h b/proxy/ProxySession.h index ca24bc4..81995e2 100644 --- a/proxy/ProxySession.h +++ b/proxy/ProxySession.h @@ -89,7 +89,7 @@ public: // Virtual Methods virtual void new_connection(NetVConnection *new_vc, MIOBuffer *iobuf, IOBufferReader *reader) = 0; virtual void start() = 0; - virtual void attach_server_session(Http1ServerSession *ssession, bool transaction_done = true); + virtual bool attach_server_session(Http1ServerSession *ssession, bool transaction_done = true); virtual void release(ProxyTransaction *trans) = 0; diff --git a/proxy/ProxyTransaction.cc b/proxy/ProxyTransaction.cc index 214c710..56c40b2 100644 --- a/proxy/ProxyTransaction.cc +++ b/proxy/ProxyTransaction.cc @@ -56,10 +56,10 @@ ProxyTransaction::new_transaction(bool from_early_data) _sm->attach_client_session(this, _reader); } -void +bool ProxyTransaction::attach_server_session(Http1ServerSession *ssession, bool transaction_done) { - _proxy_ssn->attach_server_session(ssession, transaction_done); + return _proxy_ssn->attach_server_session(ssession, transaction_done); } void diff --git a/proxy/ProxyTransaction.h b/proxy/ProxyTransaction.h index 5ae71c8..9cd4af8 100644 --- a/proxy/ProxyTransaction.h +++ b/proxy/ProxyTransaction.h @@ -38,7 +38,7 @@ public: /// Virtual Methods // virtual void new_transaction(bool from_early_data = false); - virtual void attach_server_session(Http1ServerSession *ssession, bool transaction_done = true); + virtual bool attach_server_session(Http1ServerSession *ssession, bool transaction_done = true); Action *adjust_thread(Continuation *cont, int event, void *data); virtual void release(IOBufferReader *r) = 0; virtual void transaction_done(); diff --git a/proxy/http/Http1ClientSession.cc b/proxy/http/Http1ClientSession.cc index 7d68b24..4ffc6b1 100644 --- a/proxy/http/Http1ClientSession.cc +++ b/proxy/http/Http1ClientSession.cc @@ -460,7 +460,7 @@ Http1ClientSession::new_transaction() trans.new_transaction(read_from_early_data > 0 ? true : false); } -void +bool Http1ClientSession::attach_server_session(Http1ServerSession *ssession, bool transaction_done) { if (ssession) { @@ -499,6 +499,7 @@ Http1ClientSession::attach_server_session(Http1ServerSession *ssession, bool tra bound_ss = nullptr; slave_ka_vio = nullptr; } + return true; } void diff --git a/proxy/http/Http1ClientSession.h b/proxy/http/Http1ClientSession.h index aef989d..686f5f4 100644 --- a/proxy/http/Http1ClientSession.h
[trafficserver] branch 9.0.x updated: Fix bad HTTP/2 post client causing stuck HttpSM (#7237)
This is an automated email from the ASF dual-hosted git repository. zwoop pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git The following commit(s) were added to refs/heads/9.0.x by this push: new 8dba44a Fix bad HTTP/2 post client causing stuck HttpSM (#7237) 8dba44a is described below commit 8dba44a243ca3593663cca3ef96624adefcb37b3 Author: Susan Hinrichs AuthorDate: Fri Oct 16 08:20:39 2020 -0500 Fix bad HTTP/2 post client causing stuck HttpSM (#7237) (cherry picked from commit 786463b24a26704b4429725b9f0b3787ba812270) --- proxy/http/HttpSM.cc | 6 +++--- proxy/http/HttpTunnel.cc | 4 proxy/http/HttpTunnel.h | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc index 4313bb3..068678d 100644 --- a/proxy/http/HttpSM.cc +++ b/proxy/http/HttpSM.cc @@ -2687,7 +2687,7 @@ HttpSM::tunnel_handler_post_or_put(HttpTunnelProducer *p) tunnel.reset(); // When the ua completed sending it's data we must have // removed it from the tunnel -ink_release_assert(ua_entry->in_tunnel == false); +ua_entry->in_tunnel = false; server_entry->in_tunnel = false; break; @@ -3635,7 +3635,7 @@ HttpSM::tunnel_handler_post_server(int event, HttpTunnelConsumer *c) // do not shut down the client read if (enable_redirection) { if (ua_producer->vc_type == HT_STATIC && event != VC_EVENT_ERROR && event != VC_EVENT_EOS) { -ua_entry->read_vio = ua_producer->vc->do_io_read(this, INT64_MAX, c->producer->read_buffer); +ua_entry->read_vio = ua_producer->vc->do_io_read(this, INT64_MAX, ua_buffer_reader->mbuf); // ua_producer->vc->do_io_shutdown(IO_SHUTDOWN_READ); t_state.client_info.pipeline_possible = false; } else { @@ -3644,7 +3644,7 @@ HttpSM::tunnel_handler_post_server(int event, HttpTunnelConsumer *c) } } } else { - ua_entry->read_vio = ua_producer->vc->do_io_read(this, INT64_MAX, c->producer->read_buffer); + ua_entry->read_vio = ua_producer->vc->do_io_read(this, INT64_MAX, ua_buffer_reader->mbuf); // we should not shutdown read side of the client here to prevent sending a reset // ua_producer->vc->do_io_shutdown(IO_SHUTDOWN_READ); t_state.client_info.pipeline_possible = false; diff --git a/proxy/http/HttpTunnel.cc b/proxy/http/HttpTunnel.cc index 0588acd..0dc0fb2 100644 --- a/proxy/http/HttpTunnel.cc +++ b/proxy/http/HttpTunnel.cc @@ -1332,6 +1332,9 @@ HttpTunnel::consumer_handler(int event, HttpTunnelConsumer *c) if (c->producer && c->producer->handler_state == 0) { if (event == VC_EVENT_WRITE_COMPLETE) { c->producer->handler_state = HTTP_SM_POST_SUCCESS; +// If the consumer completed, presumably the producer successfully read and is done +c->producer->read_success = true; +c->producer->alive= false; } else if (c->vc_type == HT_HTTP_SERVER) { c->producer->handler_state = HTTP_SM_POST_UA_FAIL; } else if (c->vc_type == HT_HTTP_CLIENT) { @@ -1614,6 +1617,7 @@ HttpTunnel::main_handler(int event, void *data) ink_assert(c->write_vio == (VIO *)data || c->vc == ((VIO *)data)->vc_server); sm_callback = consumer_handler(event, c); } else { + // Presumably a delayed event we can ignore now internal_error(); // do nothing } } diff --git a/proxy/http/HttpTunnel.h b/proxy/http/HttpTunnel.h index 9ba0f97..c6aa9fc 100644 --- a/proxy/http/HttpTunnel.h +++ b/proxy/http/HttpTunnel.h @@ -483,7 +483,7 @@ HttpTunnel::get_consumer(VIO *vio) { if (vio) { for (int i = 0; i < MAX_CONSUMERS; i++) { - if (consumers[i].alive && (consumers[i].write_vio == vio || consumers[i].vc == vio->vc_server)) { + if (consumers[i].alive && consumers[i].write_vio == vio) { return consumers + i; } }