[trafficserver] branch 9.0.x updated: Updated ChangeLog

2020-10-23 Thread zwoop
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)

2020-10-23 Thread zwoop
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)

2020-10-23 Thread zwoop
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)

2020-10-23 Thread zwoop
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)

2020-10-23 Thread zwoop
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)

2020-10-23 Thread zwoop
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;
   }
 }