You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by so...@apache.org on 2015/06/30 06:14:56 UTC

[1/8] trafficserver git commit: TS-3661: keep cache_sm active during 3xx redirect follow to allow for caching the final response

Repository: trafficserver
Updated Branches:
  refs/heads/5.3.x 22b6ad89d -> 38b4113f5


TS-3661: keep cache_sm active during 3xx redirect follow to allow
for caching the final response

(cherry picked from commit 5b35808d5a571f3c67ab66c8a06448acda03220a)


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/5fc9e0b2
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/5fc9e0b2
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/5fc9e0b2

Branch: refs/heads/5.3.x
Commit: 5fc9e0b2fccdcf68f8bba7b41a03a16e78222926
Parents: 22b6ad8
Author: Sudheer Vinukonda <su...@yahoo-inc.com>
Authored: Wed Jun 3 23:51:16 2015 +0000
Committer: Phil Sorber <so...@apache.org>
Committed: Mon Jun 29 10:35:00 2015 -0600

----------------------------------------------------------------------
 proxy/http/HttpSM.cc | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5fc9e0b2/proxy/http/HttpSM.cc
----------------------------------------------------------------------
diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc
index 32a8a36..048b41d 100644
--- a/proxy/http/HttpSM.cc
+++ b/proxy/http/HttpSM.cc
@@ -1584,7 +1584,6 @@ HttpSM::handle_api_return()
   case HttpTransact::SM_ACTION_REDIRECT_READ: {
     // Clean up from any communication with previous servers
     release_server_session();
-    cache_sm.close_write();
     // tunnel.deallocate_redirect_postdata_buffers();
 
     call_transact_and_set_next_state(HttpTransact::HandleRequest);
@@ -7104,7 +7103,7 @@ HttpSM::set_next_state()
   }
 
   case HttpTransact::SM_ACTION_CACHE_ISSUE_WRITE: {
-    ink_assert(cache_sm.cache_write_vc == NULL);
+    ink_assert((cache_sm.cache_write_vc == NULL) || t_state.redirect_info.redirect_in_process);
     HTTP_SM_SET_DEFAULT_HANDLER(&HttpSM::state_cache_open_write);
 
     do_cache_prepare_write();


[2/8] trafficserver git commit: TS-3661: Update CHANGES

Posted by so...@apache.org.
TS-3661: Update CHANGES

(cherry picked from commit 2d8113098a44d764378e8e0a5d8a5c03f9f2788d)

Conflicts:
	CHANGES


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/75f2860e
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/75f2860e
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/75f2860e

Branch: refs/heads/5.3.x
Commit: 75f2860e1e3417db3c2478c1ec43c7cd2c1e0b95
Parents: 5fc9e0b
Author: Sudheer Vinukonda <su...@yahoo-inc.com>
Authored: Wed Jun 3 23:53:16 2015 +0000
Committer: Phil Sorber <so...@apache.org>
Committed: Mon Jun 29 13:47:47 2015 -0600

----------------------------------------------------------------------
 CHANGES | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/75f2860e/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 4e94312..9075e5d 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,9 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache Traffic Server 5.3.1
 
+  *) [TS-3661] keep cache_sm active during 3xx redirect follow to allow
+   for caching the final response.
+
   *) [TS-3696] Fix range check in HdrHeap::attach_str_heap() such that gcc 5.1
    doesn't complain.
 


[4/8] trafficserver git commit: TS-3665: Update CHANGES

Posted by so...@apache.org.
TS-3665: Update CHANGES

(cherry picked from commit 8d16cdbe0db48b508297cec6f1ffc8e2cb9a6106)

Conflicts:
	CHANGES


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/9031516b
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/9031516b
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/9031516b

Branch: refs/heads/5.3.x
Commit: 9031516b71ff5780d89af0ed4da536757b6ab2aa
Parents: fd1f754
Author: shinrich <sh...@yahoo-inc.com>
Authored: Tue Jun 9 08:17:42 2015 -0500
Committer: Phil Sorber <so...@apache.org>
Committed: Mon Jun 29 13:48:06 2015 -0600

----------------------------------------------------------------------
 CHANGES | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/9031516b/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 9075e5d..94d81be 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,8 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache Traffic Server 5.3.1
 
+  *) [TS-3665] Redirect logic causing debug asserts.
+
   *) [TS-3661] keep cache_sm active during 3xx redirect follow to allow
    for caching the final response.
 


[3/8] trafficserver git commit: TS-3665: Redirect logic causing debug asserts

Posted by so...@apache.org.
TS-3665: Redirect logic causing debug asserts

(cherry picked from commit e46eea5f1eee107a19a8412fef8b967a2f162457)


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/fd1f7543
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/fd1f7543
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/fd1f7543

Branch: refs/heads/5.3.x
Commit: fd1f7543b355a3c8f5fe1d65f04dee19383e1d1d
Parents: 75f2860
Author: shinrich <sh...@yahoo-inc.com>
Authored: Tue Jun 9 08:16:47 2015 -0500
Committer: Phil Sorber <so...@apache.org>
Committed: Mon Jun 29 13:48:01 2015 -0600

----------------------------------------------------------------------
 proxy/http/HttpCacheSM.cc | 8 ++++++--
 proxy/http/HttpSM.cc      | 2 --
 2 files changed, 6 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/fd1f7543/proxy/http/HttpCacheSM.cc
----------------------------------------------------------------------
diff --git a/proxy/http/HttpCacheSM.cc b/proxy/http/HttpCacheSM.cc
index 1025796..ff02e3a 100644
--- a/proxy/http/HttpCacheSM.cc
+++ b/proxy/http/HttpCacheSM.cc
@@ -106,7 +106,11 @@ HttpCacheSM::state_cache_open_read(int event, void *data)
   switch (event) {
   case CACHE_EVENT_OPEN_READ:
     HTTP_INCREMENT_DYN_STAT(http_current_cache_connections_stat);
-    ink_assert(cache_read_vc == NULL);
+    ink_assert((cache_read_vc == NULL) || master_sm->t_state.redirect_info.redirect_in_process);
+    if (cache_read_vc) {
+      // redirect follow in progress, close the previous cache_read_vc
+      close_read();
+    }
     open_read_cb = true;
     cache_read_vc = (CacheVConnection *)data;
     master_sm->handleEvent(event, data);
@@ -267,7 +271,7 @@ HttpCacheSM::open_write(URL *url, HTTPHdr *request, CacheHTTPInfo *old_info, tim
 {
   SET_HANDLER(&HttpCacheSM::state_cache_open_write);
   ink_assert(pending_action == NULL);
-  ink_assert(cache_write_vc == NULL);
+  ink_assert((cache_write_vc == NULL) || master_sm->t_state.redirect_info.redirect_in_process);
   // INKqa12119
   open_write_cb = false;
   open_write_tries++;

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/fd1f7543/proxy/http/HttpSM.cc
----------------------------------------------------------------------
diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc
index 048b41d..096f2c5 100644
--- a/proxy/http/HttpSM.cc
+++ b/proxy/http/HttpSM.cc
@@ -1584,7 +1584,6 @@ HttpSM::handle_api_return()
   case HttpTransact::SM_ACTION_REDIRECT_READ: {
     // Clean up from any communication with previous servers
     release_server_session();
-    // tunnel.deallocate_redirect_postdata_buffers();
 
     call_transact_and_set_next_state(HttpTransact::HandleRequest);
     break;
@@ -4473,7 +4472,6 @@ HttpSM::do_cache_prepare_action(HttpCacheSM *c_sm, CacheHTTPInfo *object_read_in
   bool restore_client_request = false;
 
   ink_assert(!pending_action);
-  ink_assert(c_sm->cache_write_vc == NULL);
 
   if (t_state.api_lock_url == HttpTransact::LOCK_URL_FIRST) {
     if (t_state.redirect_info.redirect_in_process) {


[6/8] trafficserver git commit: TS-3719: HPACK error in lowering table size

Posted by so...@apache.org.
TS-3719: HPACK error in lowering table size

(cherry picked from commit 96bd1fa785c3e6adbca8e11f1ad7a578e945625e)


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/4281f20a
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/4281f20a
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/4281f20a

Branch: refs/heads/5.3.x
Commit: 4281f20ad9e9316710d427628250ce58bd15ea09
Parents: 81a6807
Author: Bryan Call <bc...@apache.org>
Authored: Thu Jun 25 10:03:38 2015 -0700
Committer: Phil Sorber <so...@apache.org>
Committed: Mon Jun 29 13:48:09 2015 -0600

----------------------------------------------------------------------
 proxy/http2/HPACK.cc | 15 ++++++++++-----
 proxy/http2/HPACK.h  |  2 +-
 2 files changed, 11 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/4281f20a/proxy/http2/HPACK.cc
----------------------------------------------------------------------
diff --git a/proxy/http2/HPACK.cc b/proxy/http2/HPACK.cc
index 4dd4eb0..b074898 100644
--- a/proxy/http2/HPACK.cc
+++ b/proxy/http2/HPACK.cc
@@ -210,23 +210,26 @@ Http2DynamicTable::get_header_from_indexing_tables(uint32_t index, MIMEFieldWrap
 // Whenever the maximum size for the header table is reduced, entries
 // are evicted from the end of the header table until the size of the
 // header table is less than or equal to the maximum size.
-void
+bool
 Http2DynamicTable::set_dynamic_table_size(uint32_t new_size)
 {
-  uint32_t old_size = _settings_dynamic_table_size;
-  while (old_size > new_size) {
+  while (_current_size > new_size) {
+    if (_headers.n <= 0) {
+      return false;
+    }
     int last_name_len, last_value_len;
     MIMEField *last_field = _headers.last();
 
     last_field->name_get(&last_name_len);
     last_field->value_get(&last_value_len);
-    old_size -= ADDITIONAL_OCTETS + last_name_len + last_value_len;
+    _current_size -= ADDITIONAL_OCTETS + last_name_len + last_value_len;
 
     _headers.remove_index(_headers.length() - 1);
     _mhdr->field_delete(last_field, false);
   }
 
   _settings_dynamic_table_size = new_size;
+  return true;
 }
 
 void
@@ -684,7 +687,9 @@ update_dynamic_table_size(const uint8_t *buf_start, const uint8_t *buf_end, Http
   if (len == HPACK_ERROR_COMPRESSION_ERROR)
     return HPACK_ERROR_COMPRESSION_ERROR;
 
-  dynamic_table.set_dynamic_table_size(size);
+  if (dynamic_table.set_dynamic_table_size(size) == false) {
+    return HPACK_ERROR_COMPRESSION_ERROR;
+  }
 
   return len;
 }

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/4281f20a/proxy/http2/HPACK.h
----------------------------------------------------------------------
diff --git a/proxy/http2/HPACK.h b/proxy/http2/HPACK.h
index ea1e211..4e63a37 100644
--- a/proxy/http2/HPACK.h
+++ b/proxy/http2/HPACK.h
@@ -113,7 +113,7 @@ public:
 
   void add_header_field(const MIMEField *field);
   int get_header_from_indexing_tables(uint32_t index, MIMEFieldWrapper &header_field) const;
-  void set_dynamic_table_size(uint32_t new_size);
+  bool set_dynamic_table_size(uint32_t new_size);
 
 private:
   const MIMEField *


[7/8] trafficserver git commit: TS-3721: Remove scoping on enum for HTTP2_FRAME_TYPE_MAX

Posted by so...@apache.org.
TS-3721: Remove scoping on enum for HTTP2_FRAME_TYPE_MAX

(cherry picked from commit 4377dabd0f6c8ec9275ec456d295907a06a1b591)


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/15fed8a0
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/15fed8a0
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/15fed8a0

Branch: refs/heads/5.3.x
Commit: 15fed8a01537a780ca433edc76fc1dd8da5af3f1
Parents: 4281f20
Author: Bryan Call <bc...@apache.org>
Authored: Thu Jun 25 16:27:23 2015 -0700
Committer: Phil Sorber <so...@apache.org>
Committed: Mon Jun 29 13:48:09 2015 -0600

----------------------------------------------------------------------
 proxy/http2/Http2ConnectionState.cc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/15fed8a0/proxy/http2/Http2ConnectionState.cc
----------------------------------------------------------------------
diff --git a/proxy/http2/Http2ConnectionState.cc b/proxy/http2/Http2ConnectionState.cc
index 11ec82f..d923902 100644
--- a/proxy/http2/Http2ConnectionState.cc
+++ b/proxy/http2/Http2ConnectionState.cc
@@ -640,8 +640,8 @@ Http2ConnectionState::main_event_handler(int event, void *edata)
     Http2ErrorCode error;
 
     //  Implementations MUST ignore and discard any frame that has a type that is unknown.
-    ink_assert(frame->header().type < Http2FrameType::HTTP2_FRAME_TYPE_MAX);
-    if (frame->header().type >= Http2FrameType::HTTP2_FRAME_TYPE_MAX) {
+    ink_assert(frame->header().type < HTTP2_FRAME_TYPE_MAX);
+    if (frame->header().type >= HTTP2_FRAME_TYPE_MAX) {
       return 0;
     }
 


[8/8] trafficserver git commit: Update CHANGES

Posted by so...@apache.org.
Update CHANGES


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/38b4113f
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/38b4113f
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/38b4113f

Branch: refs/heads/5.3.x
Commit: 38b4113f5e9e6aa6c659c4f5e0eaf7db2f1ff67e
Parents: 15fed8a
Author: Phil Sorber <so...@apache.org>
Authored: Mon Jun 29 10:41:05 2015 -0600
Committer: Phil Sorber <so...@apache.org>
Committed: Mon Jun 29 13:48:09 2015 -0600

----------------------------------------------------------------------
 CHANGES | 6 ++++++
 1 file changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/38b4113f/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 94d81be..f7bb04e 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,12 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache Traffic Server 5.3.1
 
+  *) [TS-3721] Remove scoping on enum for HTTP2_FRAME_TYPE_MAX.
+
+  *) [TS-3719] HPACK error in lowering table size.
+
+  *) [TS-3697] Fix frame type check for http/2.
+
   *) [TS-3665] Redirect logic causing debug asserts.
 
   *) [TS-3661] keep cache_sm active during 3xx redirect follow to allow


[5/8] trafficserver git commit: TS-3697: Fix frame type check for http/2

Posted by so...@apache.org.
TS-3697: Fix frame type check for http/2

(cherry picked from commit 45c1133b9ea45003ae6491f4bd03edcf3ab8be37)


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/81a6807a
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/81a6807a
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/81a6807a

Branch: refs/heads/5.3.x
Commit: 81a6807a419051712feb2b7f93e62e3140f4001c
Parents: 9031516
Author: Bryan Call <bc...@apache.org>
Authored: Tue Jun 16 14:59:18 2015 -0700
Committer: Phil Sorber <so...@apache.org>
Committed: Mon Jun 29 13:48:08 2015 -0600

----------------------------------------------------------------------
 proxy/http2/Http2ConnectionState.cc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/81a6807a/proxy/http2/Http2ConnectionState.cc
----------------------------------------------------------------------
diff --git a/proxy/http2/Http2ConnectionState.cc b/proxy/http2/Http2ConnectionState.cc
index 8d7ec7d..11ec82f 100644
--- a/proxy/http2/Http2ConnectionState.cc
+++ b/proxy/http2/Http2ConnectionState.cc
@@ -640,8 +640,8 @@ Http2ConnectionState::main_event_handler(int event, void *edata)
     Http2ErrorCode error;
 
     //  Implementations MUST ignore and discard any frame that has a type that is unknown.
-    ink_assert(frame->header().type < countof(frame_handlers));
-    if (frame->header().type > countof(frame_handlers)) {
+    ink_assert(frame->header().type < Http2FrameType::HTTP2_FRAME_TYPE_MAX);
+    if (frame->header().type >= Http2FrameType::HTTP2_FRAME_TYPE_MAX) {
       return 0;
     }