[trafficserver] branch master updated: Adding logging fields for collapsed forwarding metrics (#6708)
This is an automated email from the ASF dual-hosted git repository. eze pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/trafficserver.git The following commit(s) were added to refs/heads/master by this push: new 0ec63fc Adding logging fields for collapsed forwarding metrics (#6708) 0ec63fc is described below commit 0ec63fc9df3810b68ab80864bf3f559c56c02aac Author: Evan Zelkowitz AuthorDate: Mon Apr 27 19:54:43 2020 -0700 Adding logging fields for collapsed forwarding metrics (#6708) * Adding logging fields for collapsed forwarding metrics This adds 3 new log fields for transaction output (since collapsed forwarding is transaction based) * crra - The number of read retry attempts for this transaction. If no CF has been done (it has not attempted a write) then this is just the read lock contention. If a write has been attempted then this value gets reset to 0 as it attempts more reads post-write-fail. * cwra - The number of write retry attempts. This will be either the number based on write lock contention, or it can be the max-write-retries+1. If it is max+1 that means that we have hit the max attempts because the lock was being held by another writer and so this transaction fell back to read retries and attempted to be collapsed * cccs - Collapsed connection success. * -1: Attempted CF but failed and went to origin * 0: Did not need to collapse, either already had to go to origin or was a hit * 1: Attempted CF and got a hit on retry read attempts * Remove creation of cache_sm object since logaccess cannot use its destructor. Using the access functions directly * Changed log values: * -1: Attempted CF but failed and went to origin * 0: Did not need to collapse, either already had to go to origin or was a hit * 1: Attempted CF and got a hit on retry read attempts * Update documentation for cccs value --- doc/admin-guide/logging/formatting.en.rst | 10 ++ proxy/logging/Log.cc | 15 + proxy/logging/LogAccess.cc| 55 +++ proxy/logging/LogAccess.h | 3 ++ 4 files changed, 83 insertions(+) diff --git a/doc/admin-guide/logging/formatting.en.rst b/doc/admin-guide/logging/formatting.en.rst index 8fa5edd..c81f435 100644 --- a/doc/admin-guide/logging/formatting.en.rst +++ b/doc/admin-guide/logging/formatting.en.rst @@ -151,6 +151,9 @@ Cache Details .. _chm: .. _cwr: .. _cwtr: +.. _crra: +.. _cwra: +.. _cccs: These log fields reveal details of the |TS| proxy interaction with its own cache while attempting to service incoming client requests. @@ -173,6 +176,13 @@ cwr Proxy CacheCache Write Result. Specifies the result of attempting to (``WL_MISS``), write interrupted (``INTR``), error while writing (``ERR``), or cache write successful (``FIN``). cwt Proxy CacheCache Write Transform Result. +crra Proxy CacheCache read retry attempts to read the object from cache. +cwra Proxy CacheCache write retry attempts to write a fresh or updated + object to cache. +cccs Proxy CacheCache collapsed connection success; + -1: collapsing was attempted but failed, request went upstream + 0: collapsing was unnecessary + 1: attempted to collapse and got a cache hit on subsequent read attempts = == == .. _admin-logging-fields-txn: diff --git a/proxy/logging/Log.cc b/proxy/logging/Log.cc index 42f8dc3..8be6bd7 100644 --- a/proxy/logging/Log.cc +++ b/proxy/logging/Log.cc @@ -892,6 +892,21 @@ Log::init_fields() global_field_list.add(field, false); field_symbol_hash.emplace("ctid", field); + field = new LogField("cache_read_retry_attempts", "crra", LogField::dINT, ::marshal_cache_read_retries, + ::unmarshal_int_to_str); + global_field_list.add(field, false); + field_symbol_hash.emplace("crra", field); + + field = new LogField("cache_write_retry_attempts", "cwra", LogField::dINT, ::marshal_cache_write_retries, + ::unmarshal_int_to_str); + global_field_list.add(field, false); + field_symbol_hash.emplace("cwra", field); + + field = new LogField("cache_collapsed_connection_success", "cccs", LogField::dINT, + ::marshal_cache_collapsed_connection_success, ::unmarshal_int_to_str); + global_field_list.add(field, false); + field_symbol_hash.emplace("cccs", field); + field = new LogField("client_transaction_priority_weight", "ctpw", LogField::sINT, ::marshal_client_http_transaction_priority_weight, ::unmarshal_int_to_str); global_field_list.add(field, false); diff --git a/proxy/logging/LogAccess.cc b/proxy/logging/LogAccess.cc index 32b2e19..08f5b0a 100644 ---
[trafficserver] 01/02: Fix lost fragments when update object
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 commit decd303f27d7e3be6f7817db3d3ea2abcf28191b Author: scw00 AuthorDate: Wed Sep 11 16:30:31 2019 +0800 Fix lost fragments when update object (cherry picked from commit c35efb328a4052d368924b3d13901ba819d8a96e) --- iocore/cache/CacheWrite.cc | 4 +++- iocore/cache/test/test_Update_L_to_S.cc | 1 + iocore/cache/test/test_Update_S_to_L.cc | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/iocore/cache/CacheWrite.cc b/iocore/cache/CacheWrite.cc index b41edcb..944d527 100644 --- a/iocore/cache/CacheWrite.cc +++ b/iocore/cache/CacheWrite.cc @@ -105,7 +105,9 @@ CacheVC::updateVector(int /* event ATS_UNUSED */, Event * /* e ATS_UNUSED */) called iff the update is a header only update so the fragment data should remain valid. */ - if (alternate_index >= 0) { + // If we are not in header only updating case. Don't copy fragments. + if (alternate_index >= 0 && + ((total_len == 0 && alternate.get_frag_offset_count() == 0) && !(f.allow_empty_doc && this->vio.nbytes == 0))) { alternate.copy_frag_offsets_from(write_vector->get(alternate_index)); } alternate_index = write_vector->insert(, alternate_index); diff --git a/iocore/cache/test/test_Update_L_to_S.cc b/iocore/cache/test/test_Update_L_to_S.cc index 7ace4ac..9b4ea8e 100644 --- a/iocore/cache/test/test_Update_L_to_S.cc +++ b/iocore/cache/test/test_Update_L_to_S.cc @@ -51,6 +51,7 @@ public: switch (event) { case CACHE_EVENT_OPEN_READ: base->do_io_read(); + REQUIRE(base->vc->alternate.get_frag_offset_count() < 5); break; case VC_EVENT_READ_READY: base->reenable(); diff --git a/iocore/cache/test/test_Update_S_to_L.cc b/iocore/cache/test/test_Update_S_to_L.cc index def645d..5b0f6d1 100644 --- a/iocore/cache/test/test_Update_S_to_L.cc +++ b/iocore/cache/test/test_Update_S_to_L.cc @@ -51,6 +51,7 @@ public: switch (event) { case CACHE_EVENT_OPEN_READ: base->do_io_read(); + REQUIRE(base->vc->alternate.get_frag_offset_count() > 8); break; case VC_EVENT_READ_READY: base->reenable();
[trafficserver] 02/02: Patch to catch and invalidate an HTTP asset with negative bytes after cache_seek.
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 commit e4c0e9c27fde765e1fabb5ed96173291bfb38e0e Author: Brian Olsen AuthorDate: Wed Mar 11 17:31:42 2020 + Patch to catch and invalidate an HTTP asset with negative bytes after cache_seek. (cherry picked from commit a885dc63896e972bcde388c32019d258a6148398) --- iocore/cache/CacheRead.cc | 57 -- iocore/cache/P_CacheInternal.h | 1 + 2 files changed, 56 insertions(+), 2 deletions(-) diff --git a/iocore/cache/CacheRead.cc b/iocore/cache/CacheRead.cc index 5dc267b..6c89987 100644 --- a/iocore/cache/CacheRead.cc +++ b/iocore/cache/CacheRead.cc @@ -717,8 +717,46 @@ CacheVC::openReadMain(int /* event ATS_UNUSED */, Event * /* e ATS_UNUSED */) bytes = doc->len - doc_pos; if (is_debug_tag_set("cache_seek")) { char target_key_str[CRYPTO_HEX_SIZE]; - key.toHexStr(target_key_str); - Debug("cache_seek", "Read # %d @ %" PRId64 "/%d for %" PRId64, fragment, doc_pos, doc->len, bytes); + Debug("cache_seek", "Read # %d @ %" PRId64 "/%d for %" PRId64 " %s", fragment, doc_pos, doc->len, bytes, +key.toHexStr(target_key_str)); +} + +// This shouldn't happen for HTTP assets but it does +// occasionally in production. This is a temporary fix +// to clean up broken objects until the root cause can +// be found. It must be the case that either the fragment +// offsets are incorrect or a fragment table isn't being +// created when it should be. +if (frag_type == CACHE_FRAG_TYPE_HTTP && bytes < 0) { + char xt[CRYPTO_HEX_SIZE]; + char yt[CRYPTO_HEX_SIZE]; + + int url_length = 0; + char const *url_text = nullptr; + if (request.valid()) { +url_text = request.url_get()->string_get_ref(_length); + } + + int64_t prev_frag_size = 0; + if (fragment && frags) { +prev_frag_size = static_cast(frags[fragment - 1]); + } + + Warning("cache_seek range request bug: read %s targ %s - %s frag # %d (prev_frag %" PRId64 ") @ %" PRId64 "/%d for %" PRId64 + " tot %" PRId64 " url '%.*s'", + doc->key.toHexStr(xt), key.toHexStr(yt), f.single_fragment ? "single" : "multi", fragment, prev_frag_size, doc_pos, + doc->len, bytes, doc->total_len, url_length, url_text); + + doc->magic = DOC_CORRUPT; + + CACHE_TRY_LOCK(lock, vol->mutex, mutex->thread_holding); + if (!lock.is_locked()) { +SET_HANDLER(::openReadDirDelete); +VC_SCHED_LOCK_RETRY(); + } + + dir_delete(_key, vol, _dir); + goto Lerror; } } if (ntodo <= 0) { @@ -1218,3 +1256,18 @@ Learliest: SET_HANDLER(::openReadStartEarliest); return openReadStartEarliest(event, e); } + +/* + Handle a directory delete event in case of some detected corruption. +*/ +int +CacheVC::openReadDirDelete(int event, Event *e) +{ + MUTEX_TRY_LOCK(lock, vol->mutex, mutex->thread_holding); + if (!lock.is_locked()) { +VC_SCHED_LOCK_RETRY(); + } + + dir_delete(_key, vol, _dir); + return calluser(VC_EVENT_ERROR); +} diff --git a/iocore/cache/P_CacheInternal.h b/iocore/cache/P_CacheInternal.h index eb9a72c..3e05f2c 100644 --- a/iocore/cache/P_CacheInternal.h +++ b/iocore/cache/P_CacheInternal.h @@ -326,6 +326,7 @@ struct CacheVC : public CacheVConnection { int openReadFromWriterMain(int event, Event *e); int openReadFromWriterFailure(int event, Event *); int openReadChooseWriter(int event, Event *e); + int openReadDirDelete(int event, Event *e); int openWriteCloseDir(int event, Event *e); int openWriteCloseHeadDone(int event, Event *e);
[trafficserver] branch 9.0.x updated (5bd81e8 -> e4c0e9c)
This is an automated email from the ASF dual-hosted git repository. zwoop pushed a change to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git. from 5bd81e8 Removes ATS version from gold files new decd303 Fix lost fragments when update object new e4c0e9c Patch to catch and invalidate an HTTP asset with negative bytes after cache_seek. The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: iocore/cache/CacheRead.cc | 57 +++-- iocore/cache/CacheWrite.cc | 4 ++- iocore/cache/P_CacheInternal.h | 1 + iocore/cache/test/test_Update_L_to_S.cc | 1 + iocore/cache/test/test_Update_S_to_L.cc | 1 + 5 files changed, 61 insertions(+), 3 deletions(-)
[trafficserver] branch 8.1.x updated: Patch to catch and invalidate an HTTP asset with negative bytes after cache_seek.
This is an automated email from the ASF dual-hosted git repository. zwoop pushed a commit to branch 8.1.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git The following commit(s) were added to refs/heads/8.1.x by this push: new 5995d34 Patch to catch and invalidate an HTTP asset with negative bytes after cache_seek. 5995d34 is described below commit 5995d34c6bb77cfc489114adbc18cd7b8292306c Author: Brian Olsen AuthorDate: Wed Mar 11 17:31:42 2020 + Patch to catch and invalidate an HTTP asset with negative bytes after cache_seek. (cherry picked from commit a885dc63896e972bcde388c32019d258a6148398) --- iocore/cache/CacheRead.cc | 57 -- iocore/cache/P_CacheInternal.h | 1 + 2 files changed, 56 insertions(+), 2 deletions(-) diff --git a/iocore/cache/CacheRead.cc b/iocore/cache/CacheRead.cc index 662a102..4bb3612 100644 --- a/iocore/cache/CacheRead.cc +++ b/iocore/cache/CacheRead.cc @@ -719,8 +719,46 @@ CacheVC::openReadMain(int /* event ATS_UNUSED */, Event * /* e ATS_UNUSED */) bytes = doc->len - doc_pos; if (is_debug_tag_set("cache_seek")) { char target_key_str[CRYPTO_HEX_SIZE]; - key.toHexStr(target_key_str); - Debug("cache_seek", "Read # %d @ %" PRId64 "/%d for %" PRId64, fragment, doc_pos, doc->len, bytes); + Debug("cache_seek", "Read # %d @ %" PRId64 "/%d for %" PRId64 " %s", fragment, doc_pos, doc->len, bytes, +key.toHexStr(target_key_str)); +} + +// This shouldn't happen for HTTP assets but it does +// occasionally in production. This is a temporary fix +// to clean up broken objects until the root cause can +// be found. It must be the case that either the fragment +// offsets are incorrect or a fragment table isn't being +// created when it should be. +if (frag_type == CACHE_FRAG_TYPE_HTTP && bytes < 0) { + char xt[CRYPTO_HEX_SIZE]; + char yt[CRYPTO_HEX_SIZE]; + + int url_length = 0; + char const *url_text = nullptr; + if (request.valid()) { +url_text = request.url_get()->string_get_ref(_length); + } + + int64_t prev_frag_size = 0; + if (fragment && frags) { +prev_frag_size = static_cast(frags[fragment - 1]); + } + + Warning("cache_seek range request bug: read %s targ %s - %s frag # %d (prev_frag %" PRId64 ") @ %" PRId64 "/%d for %" PRId64 + " tot %" PRId64 " url '%.*s'", + doc->key.toHexStr(xt), key.toHexStr(yt), f.single_fragment ? "single" : "multi", fragment, prev_frag_size, doc_pos, + doc->len, bytes, doc->total_len, url_length, url_text); + + doc->magic = DOC_CORRUPT; + + CACHE_TRY_LOCK(lock, vol->mutex, mutex->thread_holding); + if (!lock.is_locked()) { +SET_HANDLER(::openReadDirDelete); +VC_SCHED_LOCK_RETRY(); + } + + dir_delete(_key, vol, _dir); + goto Lerror; } } if (ntodo <= 0) { @@ -1220,3 +1258,18 @@ Learliest: SET_HANDLER(::openReadStartEarliest); return openReadStartEarliest(event, e); } + +/* + Handle a directory delete event in case of some detected corruption. +*/ +int +CacheVC::openReadDirDelete(int event, Event *e) +{ + MUTEX_TRY_LOCK(lock, vol->mutex, mutex->thread_holding); + if (!lock.is_locked()) { +VC_SCHED_LOCK_RETRY(); + } + + dir_delete(_key, vol, _dir); + return calluser(VC_EVENT_ERROR); +} diff --git a/iocore/cache/P_CacheInternal.h b/iocore/cache/P_CacheInternal.h index d82aa34..4e29bf5 100644 --- a/iocore/cache/P_CacheInternal.h +++ b/iocore/cache/P_CacheInternal.h @@ -326,6 +326,7 @@ struct CacheVC : public CacheVConnection { int openReadFromWriterMain(int event, Event *e); int openReadFromWriterFailure(int event, Event *); int openReadChooseWriter(int event, Event *e); + int openReadDirDelete(int event, Event *e); int openWriteCloseDir(int event, Event *e); int openWriteCloseHeadDone(int event, Event *e);
[trafficserver] branch 8.1.x updated: Fix lost fragments when update object
This is an automated email from the ASF dual-hosted git repository. zwoop pushed a commit to branch 8.1.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git The following commit(s) were added to refs/heads/8.1.x by this push: new 10a090b Fix lost fragments when update object 10a090b is described below commit 10a090b606fec8ea4c9fc760cb4995962f718c6e Author: scw00 AuthorDate: Wed Sep 11 16:30:31 2019 +0800 Fix lost fragments when update object (cherry picked from commit c35efb328a4052d368924b3d13901ba819d8a96e) Conflicts: iocore/cache/test/test_Update_L_to_S.cc iocore/cache/test/test_Update_S_to_L.cc --- iocore/cache/CacheWrite.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/iocore/cache/CacheWrite.cc b/iocore/cache/CacheWrite.cc index f81cf8d..77d44eb 100644 --- a/iocore/cache/CacheWrite.cc +++ b/iocore/cache/CacheWrite.cc @@ -105,7 +105,9 @@ CacheVC::updateVector(int /* event ATS_UNUSED */, Event * /* e ATS_UNUSED */) called iff the update is a header only update so the fragment data should remain valid. */ - if (alternate_index >= 0) { + // If we are not in header only updating case. Don't copy fragments. + if (alternate_index >= 0 && + ((total_len == 0 && alternate.get_frag_offset_count() == 0) && !(f.allow_empty_doc && this->vio.nbytes == 0))) { alternate.copy_frag_offsets_from(write_vector->get(alternate_index)); } alternate_index = write_vector->insert(, alternate_index);
[trafficserver] branch 7.1.x updated: Updated STATUS file
This is an automated email from the ASF dual-hosted git repository. bcall pushed a commit to branch 7.1.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git The following commit(s) were added to refs/heads/7.1.x by this push: new b6c0127 Updated STATUS file b6c0127 is described below commit b6c0127ed2ce97154a5c0ef6b88f4e2156eafb6d Author: Bryan Call AuthorDate: Mon Apr 27 12:09:46 2020 -0700 Updated STATUS file --- STATUS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/STATUS b/STATUS index 474a7cc..eb2a830 100644 --- a/STATUS +++ b/STATUS @@ -6,7 +6,8 @@ The current version of this file can be found at: * https://github.com/apache/trafficserver/blob/master/STATUS Release history: -7.1.10 : Released on Apr xxth, 2020 +7.1.11 : Released on May xxth, 2020 +7.1.10 : Released on Apr 16th, 2020 7.1.9 : Released on Feb 29th, 2020 7.1.8 : Released on Aug 20th, 2019 7.1.7 : Released on Aug 13th, 2019
[trafficserver] annotated tag 7.1.10 updated (439a7cf -> 43b33b9)
This is an automated email from the ASF dual-hosted git repository. bcall pushed a change to annotated tag 7.1.10 in repository https://gitbox.apache.org/repos/asf/trafficserver.git. *** WARNING: tag 7.1.10 was modified! *** from 439a7cf (commit) to 43b33b9 (tag) tagging 439a7cfcb70dcb92485dd6989af80d9f900d1f99 (commit) replaces 7.1.9 by Bryan Call on Mon Apr 27 12:03:59 2020 -0700 - Log - Release Candidate 7.1.10 -BEGIN PGP SIGNATURE- iQIcBAABAgAGBQJepyyfAAoJEE0VQRC4RQjsTEQQAJcp8CvdCvr9Y9hdHKMS2xbZ gmpq5zz4bkaJXZLDKtj0wthc3uv4SZrNhOtp19jMc3Y9tDEXlyd591RAQ9qr8bPt +gk5vVphjxmOUk1hctNqotN66tspXexPrI4Hw4JoRpY68TV+GCa1BU1m5u2l6EyC 2/Cqpbi8zj3fhwdwKwboR8NU37t5Jb90fhbc+ScZCpjJZvvg1b2+yQL/stxdScqI k/mQiMZ6xBR3w2NibFKqY6BekDbDR5mMUgF/cVm5YOUSuagWiE/3de10+NvC8kp9 V0fJe2pOnvtiNYbKNGWwTXQ4+g+NJ0SW5EIZtsLDq1cQT1T7fgWwNc+eJcNcObvp JsrV25M/IctLyU97j34MJeIiYtqOklRJ9KxEgwx1hKNLHOzS792vMKOMmzaWFX11 bYQ7XnspbHxQ958F5hunWmmPoal0wrxcytTYIazVX6gPxtM59SYSuCEuPm1hVsQD 8Jxsccgxmyoc1y5crVu3u+0jmcSNMQmznQrRy1FuDfchhmrNJkmHfErjfmVa9nwy cRGU1MpvkFjsHT9hb+pRNI0h5FBtjdaPZbWEiVQZ18xI+RH3OAH5z3+K5eDNAsyf hh9U+pEIBySiOZT6uUncPrxSz8PZdOGGt9PqpuyfSEGANWObcw6BLk8aFJ5gBIBT iaISLe3QPa8swTVlYggz =+kFu -END PGP SIGNATURE- --- No new revisions were added by this update. Summary of changes:
[trafficserver] annotated tag 8.0.7 updated (ac05db1 -> 8478f34)
This is an automated email from the ASF dual-hosted git repository. bcall pushed a change to annotated tag 8.0.7 in repository https://gitbox.apache.org/repos/asf/trafficserver.git. *** WARNING: tag 8.0.7 was modified! *** from ac05db1 (commit) to 8478f34 (tag) tagging ac05db1ca58e990e0d2c49b57e5b6364df71dabc (commit) replaces 8.0.6 by Bryan Call on Mon Apr 27 11:59:12 2020 -0700 - Log - Release Candidate 8.0.7 -BEGIN PGP SIGNATURE- iQIcBAABAgAGBQJepyuAAAoJEE0VQRC4RQjsWSIQAJ7XfX5RnWPqawbVN55eZFHz bliMG10FJWYUcT6sV1PCv1J8L6o3v+FK3ddCxzLjR7sf+ZzX9AApllzs3+TEtlfb Q7ELzDFrLC9oQIsZBCtXYysiQjMzMcdreFA6Yb6UH5qfAFeYw7GFPiqldGDgQClg fDuHq0Ewhh3AJN7mNb3v/Ds7Fi3NXpglYWHMR/mwowDyx/h70gqa1TNHBMyFTjWa WaYW45LP8pGjZj9PXZJ7paoV4ok7MDEQeEk3baVeM4r1DIlP6lZTsriMvBLoQpX1 m/DGu7BUQicps+bTdyaYtWYVJWn/NHWh2mNhzspNBMmJ0K3RsNlxoNLOPP65/TtF g9beGqnwh7wwCjLwDvk97Mqb818XjYmcchPnvv9I0QNv/3mloYQ9bmPt53fJX4R8 HKsG3Pk+3XBhIDdnD88HCYOGtzgzYKjXz0w4JyITU9AYNKknqOHW45M/QnzpWC4+ xQzJ5w4LiEjSvhWvgFueGtFk8zXmvrPB6BhWyzi3YjDT0Ysw0yrwoxBIB0uePxfC n3JzqjD28tbEh8FEe/S6iqKJZcUkoWnK/fWLdUUV1yVeIkbdsXZN44UsA+32fecr TmkIyIfKvE9Vq613wSzVrXfcAfUPTuFB0gBbwzPqu61QieWHKKcPr6r5t28eIxDN wzm11LgRqdXGbMLIk85D =NQEQ -END PGP SIGNATURE- --- No new revisions were added by this update. Summary of changes:
[trafficserver] branch 8.0.x updated: Updated STATUS file
This is an automated email from the ASF dual-hosted git repository. bcall pushed a commit to branch 8.0.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git The following commit(s) were added to refs/heads/8.0.x by this push: new cbd743f Updated STATUS file cbd743f is described below commit cbd743f77e95414b2ca8ba5f9f49bdd621db44f2 Author: Bryan Call AuthorDate: Mon Apr 27 12:00:07 2020 -0700 Updated STATUS file --- STATUS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/STATUS b/STATUS index 60672a3..e2c5a44 100644 --- a/STATUS +++ b/STATUS @@ -6,7 +6,8 @@ The current version of this file can be found at: * https://github.com/apache/trafficserver/blob/master/STATUS Release history: -8.0.7 : Release on Apr xxth, 2020 +8.0.8 : Release on May xxth, 2020 +8.0.7 : Release on Apr 16th, 2020 8.0.6 : Release on Feb 29th, 2020 8.0.5 : Release on Aug 20th, 2019 8.0.4 : Release on Aug 13th, 2019