[trafficserver] branch 8.1.x updated: Bumped version for builds etc. to v8.1.1
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 887f2bb Bumped version for builds etc. to v8.1.1 887f2bb is described below commit 887f2bb0da35b81c2a753d8b6838c3bc9d80f7d3 Author: Leif Hedstrom AuthorDate: Fri Aug 28 21:35:27 2020 -0600 Bumped version for builds etc. to v8.1.1 --- STATUS | 1 + configure.ac | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/STATUS b/STATUS index 752267e..c1d1080 100644 --- a/STATUS +++ b/STATUS @@ -6,6 +6,7 @@ The current version of this file can be found at: * https://github.com/apache/trafficserver/blob/master/STATUS Release history: +8.1.1 : Release on XXX YYY, 2020 8.1.0 : Release on Aug 28th, 2020 8.0.8 : Release on Jun 23rd, 2020 diff --git a/configure.ac b/configure.ac index 0cd0f72..99bf39a 100644 --- a/configure.ac +++ b/configure.ac @@ -32,8 +32,8 @@ # Version number is calculated as MAJOR * 100 + MINOR * 1000 + MICRO # Version string is in the form of MAJOR.MINOR.MICRO[sufix] # -m4_define([TS_VERSION_S],[8.1.0]) -m4_define([TS_VERSION_N],[8001000]) +m4_define([TS_VERSION_S],[8.1.1]) +m4_define([TS_VERSION_N],[8001001]) AC_INIT([Apache Traffic Server], TS_VERSION_S(), [d...@trafficserver.apache.org], [trafficserver],[http://trafficserver.apache.org]) AC_PREREQ([2.59])
[trafficserver] annotated tag 8.1.0 updated (72c03ba -> d0a20aa)
This is an automated email from the ASF dual-hosted git repository. zwoop pushed a change to annotated tag 8.1.0 in repository https://gitbox.apache.org/repos/asf/trafficserver.git. *** WARNING: tag 8.1.0 was modified! *** from 72c03ba (commit) to d0a20aa (tag) tagging 72c03baa83e0736e4d3fc90880642c2f5593ecf2 (commit) replaces 8.0.6 by Leif Hedstrom on Fri Aug 28 21:30:54 2020 -0600 - Log - Release 8.1.0 -BEGIN PGP SIGNATURE- iQKTBAABCgB9FiEEerFeX94ZVaUNqYYFUz3vFV17vFoFAl9Jy+5fFIAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDdB QjE1RTVGREUxOTU1QTUwREE5ODYwNTUzM0RFRjE1NUQ3QkJDNUEACgkQUz3vFV17 vFpY9RAAmpsznrkJjvPxcKNdk+L2lnRhs4DKyQpxRffZcs+q3cl1cNZtafDoMHKI 7iW/jCXuraJ8DH6sVhJEZypNaW9uplaFa5VWVMoOywLQX8gz9W5LTkLsOSnc/8Fm Jvpx1xA8fJkGaByCtegfonChTqNDhnDdQKNq1SjGjUKNdHgHdElnGxmyDB+0XtZq HN28FUxIJoo8A/Uc2lNID6WdoWy79pEWXsISx/96h3rtxZKgYBLZAYV0NdkIyyjD AsehIkCW9vDCuPmgr7hnThKRP8o3AOe5WZdFn75mOV2mCq9rv9TbwMO/vn+roSWj VgbWncGOWcqoGpkwiB6J4phh4q7udmRGgfsJByxoBTeec80cSQ6bGYDxV1Jo69kK ZnN9m5NHQB4P3RildmjLB0LDBLYYMWe0oVWANOZ2NJiB59LStUW9F4fL1a+Dm8Au 1x9FOfVc4HkRQyxXCTZsfSDZWqe1S1HNO1k44sPUMj1VF20oZY8mcgI9FU5F1kr7 Pjcw+Lt09aBF2sCHeAN6LF32fSLQK2ed1P7qBMRri92MCQeuQuTgIBBtTnahg2oE L8NIeK6mVMcvSxjVH60CKPvVEZkmoBGNpws54D92pIYUuyzBjD02n4j36aNumynV qaSj4F5UJTEutpAQFvAV/bPhtM/7fac8ETZQIv1wPC9fXa0WZrQ= =6Ofn -END PGP SIGNATURE- --- No new revisions were added by this update. Summary of changes:
svn commit: r41180 - in /release/trafficserver: trafficserver-8.1.0.tar.bz2 trafficserver-8.1.0.tar.bz2.asc trafficserver-8.1.0.tar.bz2.sha512
Author: zwoop Date: Sat Aug 29 03:33:22 2020 New Revision: 41180 Log: Added v8.1.0 release Added: release/trafficserver/trafficserver-8.1.0.tar.bz2 (with props) release/trafficserver/trafficserver-8.1.0.tar.bz2.asc release/trafficserver/trafficserver-8.1.0.tar.bz2.sha512 Added: release/trafficserver/trafficserver-8.1.0.tar.bz2 == Binary file - no diff available. Propchange: release/trafficserver/trafficserver-8.1.0.tar.bz2 -- svn:mime-type = application/octet-stream Added: release/trafficserver/trafficserver-8.1.0.tar.bz2.asc == --- release/trafficserver/trafficserver-8.1.0.tar.bz2.asc (added) +++ release/trafficserver/trafficserver-8.1.0.tar.bz2.asc Sat Aug 29 03:33:22 2020 @@ -0,0 +1,18 @@ +-BEGIN PGP SIGNATURE- + +iQKTBAABCgB9FiEEerFeX94ZVaUNqYYFUz3vFV17vFoFAl9Jy+lfFIAALgAo +aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDdB +QjE1RTVGREUxOTU1QTUwREE5ODYwNTUzM0RFRjE1NUQ3QkJDNUEACgkQUz3vFV17 +vFpDghAAiN7eIsvdeFaJJ4WKsQQhBNSD3uJ7DinbbdxTWRnGjvD+s8BotJdGbsKG +JGb3TYPRL6JHq9s87OG5e9MB9Gej8o8b0ZBZhPz+rcGTz5t1p2hgY5OeEKvRObWz +rZ9Afi3s7rPtiWTXFgd926gcowaNt9gDQ/qVeRF3TxwSC3V2PMjvhsVoamqXxpb4 +pitw1dtTc5rLGOPHLEzb+5rzMVpnLG4cIw6/FO1/YOv6M5KFwk9XQ62nE8I9U4ZM +4/tGtBi+61hikr3HwKKj5Vcq38RfrZkGQLqcDI1GWftQ/jIRut5/cuYC3FCx+O5p +e2A1h/bPXQquFJv6PFznHtcPFxx773npTyqyajxaJ3aGnCoww3EZ2ezoSrgSASMx +/es1mJ/C7tv78l6+eAdOgw4UwItIJGpyqrYWsOe6C30wGJNK5WxuSVRRnUPG6KWc +IDJIFF3XjiFadZl8JrK2rEvx2Wn321Cj0U1ez+p7gSrOW/d7JWvlk0tOgw7vwbSu +ylCCL4CZHKrwQ9z7jxDP4OS2xeh4b0AATMN2emvBLqii7Smd5L5BVWzymdfoAAwC +aNvK/AQwSS2mdNfY0pNI7qBU1VjSLCJV0/9pmZOUtHunHCtbq42x1m6bbCPkqyzN +r9LEBP59hIJUexyQpPk7MjPuq4Ifj+GKwGIONy9+vZNxsh0PijE= +=iMqL +-END PGP SIGNATURE- Added: release/trafficserver/trafficserver-8.1.0.tar.bz2.sha512 == --- release/trafficserver/trafficserver-8.1.0.tar.bz2.sha512 (added) +++ release/trafficserver/trafficserver-8.1.0.tar.bz2.sha512 Sat Aug 29 03:33:22 2020 @@ -0,0 +1 @@ +19bebf9f718cdfcfc6fcb24c6b40272e033502464709931180fc0066c4f3f4a96730098a536a7b71584149578382a38f1c14781e23d941f11e0bf78c2f5c43d1 *trafficserver-8.1.0.tar.bz2
[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 c92050c Updated ChangeLog c92050c is described below commit c92050c8782e7e9c2c9dbe304b2b1f2088d63caf Author: Leif Hedstrom AuthorDate: Fri Aug 28 21:29:49 2020 -0600 Updated ChangeLog --- CHANGELOG-9.0.0 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG-9.0.0 b/CHANGELOG-9.0.0 index 9f21e2f..5ea7bc1 100644 --- a/CHANGELOG-9.0.0 +++ b/CHANGELOG-9.0.0 @@ -1054,6 +1054,7 @@ Changes with Apache Traffic Server 9.0.0 #7113 - Updating our autest suite to require Python3.6 #7118 - Backing out my update of our jenkin's autest file. #7120 - Check VIO availability before checking whether the VIO has data + #7121 - Don't return QUIC frame if the size exceeds maximum frame size #7122 - Make tls_hooks tests more likely to pass particularly for 9.0.x branch #7123 - Accept NAT rebinding on a QUIC connection #7124 - Update and run the autopep8 make target @@ -1062,4 +1063,6 @@ Changes with Apache Traffic Server 9.0.0 #7128 - Protect TSActionCancel from null INKContInternal actions #7129 - Comment out a wrong assertion in QUIC Loss Detection logic #7137 - Removes duplicated listing of files in same Makefile target + #7138 - Remove useless shortopt #7140 - Fixes garbled logs when using % log tag + #7145 - Check VIO availability before acquiring a lock for it
[trafficserver] branch master updated: slice: check if vio is still valid before calling TSVIODone* on shutdown (#7147)
This is an automated email from the ASF dual-hosted git repository. bnolsen 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 c8c9540 slice: check if vio is still valid before calling TSVIODone* on shutdown (#7147) c8c9540 is described below commit c8c9540b04b08d04bd44f6b8c7aa5d75d4a9e1a8 Author: Brian Olsen AuthorDate: Fri Aug 28 16:26:38 2020 -0600 slice: check if vio is still valid before calling TSVIODone* on shutdown (#7147) --- plugins/experimental/slice/Stage.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/experimental/slice/Stage.h b/plugins/experimental/slice/Stage.h index 4efa3f4..47ae28a 100644 --- a/plugins/experimental/slice/Stage.h +++ b/plugins/experimental/slice/Stage.h @@ -49,7 +49,9 @@ struct Channel { int64_t const avail = TSIOBufferReaderAvail(m_reader); TSIOBufferReaderConsume(m_reader, avail); consumed = avail; - TSVIONDoneSet(m_vio, TSVIONDoneGet(m_vio) + consumed); + if (nullptr != m_vio) { +TSVIONDoneSet(m_vio, TSVIONDoneGet(m_vio) + consumed); + } } return consumed;
[trafficserver] branch master updated: Deprecate cqhv field (#7143)
This is an automated email from the ASF dual-hosted git repository. bcall 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 da01051 Deprecate cqhv field (#7143) da01051 is described below commit da01051e5985b4ef25db368ee33de6b605a8ddee Author: Masakazu Kitajo AuthorDate: Sat Aug 29 00:02:38 2020 +0900 Deprecate cqhv field (#7143) --- doc/admin-guide/logging/formatting.en.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/admin-guide/logging/formatting.en.rst b/doc/admin-guide/logging/formatting.en.rst index fbb74d6..583e999 100644 --- a/doc/admin-guide/logging/formatting.en.rst +++ b/doc/admin-guide/logging/formatting.en.rst @@ -564,7 +564,8 @@ were in effect for a given event. = = === Field SourceDescription = = === -cqhv Client RequestClient request HTTP version. +cqhv Client RequestClient request HTTP version. Deprecated since 9.0. +Use ``cqpv`` instead. cqpv Client RequestClient request protocol and version. csshv Cached Proxy Response Origin server's HTTP version from cached version of the document in |TS| proxy cache.
[trafficserver] branch 9.0.x updated (8468f22 -> 0c3fb32)
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 8468f22 remove useless shortopt (#7138) new 27e6796 Check VIO availability before acquiring a lock for it (#7145) new 0c3fb32 Don't return QUIC frame if the size exceeds maximum frame size (#7121) 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/net/quic/QUICBidirectionalStream.cc | 153 +--- iocore/net/quic/QUICFlowController.cc | 1 + iocore/net/quic/QUICUnidirectionalStream.cc | 153 +--- iocore/net/quic/test/test_QUICFlowController.cc | 35 ++ iocore/net/quic/test/test_QUICStream.cc | 91 ++ 5 files changed, 287 insertions(+), 146 deletions(-)
[trafficserver] 01/02: Check VIO availability before acquiring a lock for it (#7145)
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 27e6796b99bfa22ec1a885d484513664119ecae5 Author: Masakazu Kitajo AuthorDate: Fri Aug 28 23:37:16 2020 +0900 Check VIO availability before acquiring a lock for it (#7145) This closes #7141 (cherry picked from commit 88b89d5a4b7b997009a9dc2ca4998fe0edaa3590) --- iocore/net/quic/QUICBidirectionalStream.cc | 144 ++-- iocore/net/quic/QUICUnidirectionalStream.cc | 144 ++-- iocore/net/quic/test/test_QUICStream.cc | 4 + 3 files changed, 146 insertions(+), 146 deletions(-) diff --git a/iocore/net/quic/QUICBidirectionalStream.cc b/iocore/net/quic/QUICBidirectionalStream.cc index 8ee46c2..fbe75fb 100644 --- a/iocore/net/quic/QUICBidirectionalStream.cc +++ b/iocore/net/quic/QUICBidirectionalStream.cc @@ -371,8 +371,6 @@ QUICFrame * QUICBidirectionalStream::generate_frame(uint8_t *buf, QUICEncryptionLevel level, uint64_t connection_credit, uint16_t maximum_frame_size, size_t current_packet_size, uint32_t seq_num) { - SCOPED_MUTEX_LOCK(lock, this->_write_vio.mutex, this_ethread()); - QUICFrame *frame = this->create_retransmitted_frame(buf, level, maximum_frame_size, this->_issue_frame_id(), this); if (frame != nullptr) { ink_assert(frame->type() == QUICFrameType::STREAM); @@ -405,92 +403,92 @@ QUICBidirectionalStream::generate_frame(uint8_t *buf, QUICEncryptionLevel level, return frame; } - if (!this->_state.is_allowed_to_send(QUICFrameType::STREAM)) { -return frame; - } - - uint64_t maximum_data_size = 0; - if (maximum_frame_size <= MAX_STREAM_FRAME_OVERHEAD) { -return frame; - } - maximum_data_size = maximum_frame_size - MAX_STREAM_FRAME_OVERHEAD; - - bool pure_fin = false; - bool fin = false; - if ((this->_write_vio.nbytes != 0 || this->_write_vio.nbytes != INT64_MAX) && - this->_write_vio.nbytes == static_cast(this->_send_offset)) { -// Pure FIN stream should be sent regardless status of remote flow controller, because the length is zero. -pure_fin = true; -fin = true; - } + if (this->_write_vio.op != VIO::NONE && this->_state.is_allowed_to_send(QUICFrameType::STREAM)) { +SCOPED_MUTEX_LOCK(lock, this->_write_vio.mutex, this_ethread()); - uint64_t len = 0; - IOBufferReader *reader = this->_write_vio.get_reader(); - if (!pure_fin) { -uint64_t data_len = reader->block_read_avail(); -if (data_len == 0) { +uint64_t maximum_data_size = 0; +if (maximum_frame_size <= MAX_STREAM_FRAME_OVERHEAD) { return frame; } - -// Check Connection/Stream level credit only if the generating STREAM frame is not pure fin -uint64_t stream_credit = this->_remote_flow_controller.credit(); -if (stream_credit == 0) { - // STREAM_DATA_BLOCKED - frame = -this->_remote_flow_controller.generate_frame(buf, level, UINT16_MAX, maximum_frame_size, current_packet_size, seq_num); - return frame; +maximum_data_size = maximum_frame_size - MAX_STREAM_FRAME_OVERHEAD; + +bool pure_fin = false; +bool fin = false; +if ((this->_write_vio.nbytes != 0 || this->_write_vio.nbytes != INT64_MAX) && +this->_write_vio.nbytes == static_cast(this->_send_offset)) { + // Pure FIN stream should be sent regardless status of remote flow controller, because the length is zero. + pure_fin = true; + fin = true; } -if (connection_credit == 0) { - // BLOCKED - BLOCKED frame will be sent by connection level remote flow controller - return frame; +uint64_t len = 0; +IOBufferReader *reader = this->_write_vio.get_reader(); +if (!pure_fin) { + uint64_t data_len = reader->block_read_avail(); + if (data_len == 0) { +return frame; + } + + // Check Connection/Stream level credit only if the generating STREAM frame is not pure fin + uint64_t stream_credit = this->_remote_flow_controller.credit(); + if (stream_credit == 0) { +// STREAM_DATA_BLOCKED +frame = + this->_remote_flow_controller.generate_frame(buf, level, UINT16_MAX, maximum_frame_size, current_packet_size, seq_num); +return frame; + } + + if (connection_credit == 0) { +// BLOCKED - BLOCKED frame will be sent by connection level remote flow controller +return frame; + } + + len = std::min(data_len, std::min(maximum_data_size, std::min(stream_credit, connection_credit))); + + // data_len, maximum_data_size, stream_credit and connection_credit are already checked they're larger than 0 + ink_assert(len != 0); + + if (this->_write_vio.nbytes == static_cast(this->_send_offset + len)) { +fin = true; + } } -len = std::min(data_len,
[trafficserver] 02/02: Don't return QUIC frame if the size exceeds maximum frame size (#7121)
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 0c3fb32a0d0459655bc352532f1cf2dd9e305930 Author: Masakazu Kitajo AuthorDate: Fri Aug 28 23:37:59 2020 +0900 Don't return QUIC frame if the size exceeds maximum frame size (#7121) This fixes #7114 (cherry picked from commit 9e904eab77e15dc895c4c723d553f2183ac85ef1) --- iocore/net/quic/QUICBidirectionalStream.cc | 9 +++ iocore/net/quic/QUICFlowController.cc | 1 + iocore/net/quic/QUICUnidirectionalStream.cc | 9 +++ iocore/net/quic/test/test_QUICFlowController.cc | 35 ++ iocore/net/quic/test/test_QUICStream.cc | 87 + 5 files changed, 141 insertions(+) diff --git a/iocore/net/quic/QUICBidirectionalStream.cc b/iocore/net/quic/QUICBidirectionalStream.cc index fbe75fb..4203ec0 100644 --- a/iocore/net/quic/QUICBidirectionalStream.cc +++ b/iocore/net/quic/QUICBidirectionalStream.cc @@ -381,6 +381,10 @@ QUICBidirectionalStream::generate_frame(uint8_t *buf, QUICEncryptionLevel level, // RESET_STREAM if (this->_reset_reason && !this->_is_reset_sent) { frame = QUICFrameFactory::create_rst_stream_frame(buf, *this->_reset_reason, this->_issue_frame_id(), this); +if (frame->size() > maximum_frame_size) { + frame->~QUICFrame(); + return nullptr; +} this->_records_rst_stream_frame(level, *static_cast(frame)); this->_state.update_with_sending_frame(*frame); this->_is_reset_sent = true; @@ -391,6 +395,10 @@ QUICBidirectionalStream::generate_frame(uint8_t *buf, QUICEncryptionLevel level, if (this->_stop_sending_reason && !this->_is_stop_sending_sent) { frame = QUICFrameFactory::create_stop_sending_frame(buf, this->id(), this->_stop_sending_reason->code, this->_issue_frame_id(), this); +if (frame->size() > maximum_frame_size) { + frame->~QUICFrame(); + return nullptr; +} this->_records_stop_sending_frame(level, *static_cast(frame)); this->_state.update_with_sending_frame(*frame); this->_is_stop_sending_sent = true; @@ -400,6 +408,7 @@ QUICBidirectionalStream::generate_frame(uint8_t *buf, QUICEncryptionLevel level, // MAX_STREAM_DATA frame = this->_local_flow_controller.generate_frame(buf, level, UINT16_MAX, maximum_frame_size, current_packet_size, seq_num); if (frame) { +// maximum_frame_size should be checked in QUICFlowController return frame; } diff --git a/iocore/net/quic/QUICFlowController.cc b/iocore/net/quic/QUICFlowController.cc index c818306..647e4c4 100644 --- a/iocore/net/quic/QUICFlowController.cc +++ b/iocore/net/quic/QUICFlowController.cc @@ -129,6 +129,7 @@ QUICFlowController::generate_frame(uint8_t *buf, QUICEncryptionLevel level, uint *(reinterpret_cast(info->data)) = this->_limit; this->_records_frame(frame->id(), std::move(info)); } else { +frame->~QUICFrame(); frame = nullptr; } } diff --git a/iocore/net/quic/QUICUnidirectionalStream.cc b/iocore/net/quic/QUICUnidirectionalStream.cc index 8fa77e6..c6a3d7a 100644 --- a/iocore/net/quic/QUICUnidirectionalStream.cc +++ b/iocore/net/quic/QUICUnidirectionalStream.cc @@ -150,6 +150,10 @@ QUICSendStream::generate_frame(uint8_t *buf, QUICEncryptionLevel level, uint64_t // RESET_STREAM if (this->_reset_reason && !this->_is_reset_sent) { frame = QUICFrameFactory::create_rst_stream_frame(buf, *this->_reset_reason, this->_issue_frame_id(), this); +if (frame->size() > maximum_frame_size) { + frame->~QUICFrame(); + return nullptr; +} this->_records_rst_stream_frame(level, *static_cast(frame)); this->_state.update_with_sending_frame(*frame); this->_is_reset_sent = true; @@ -551,6 +555,10 @@ QUICReceiveStream::generate_frame(uint8_t *buf, QUICEncryptionLevel level, uint6 if (this->_stop_sending_reason && !this->_is_stop_sending_sent) { frame = QUICFrameFactory::create_stop_sending_frame(buf, this->id(), this->_stop_sending_reason->code, this->_issue_frame_id(), this); +if (frame->size() > maximum_frame_size) { + frame->~QUICFrame(); + return nullptr; +} this->_records_stop_sending_frame(level, *static_cast(frame)); this->_state.update_with_sending_frame(*frame); this->_is_stop_sending_sent = true; @@ -559,6 +567,7 @@ QUICReceiveStream::generate_frame(uint8_t *buf, QUICEncryptionLevel level, uint6 // MAX_STREAM_DATA frame = this->_local_flow_controller.generate_frame(buf, level, UINT16_MAX, maximum_frame_size, current_packet_size, seq_num); + // maximum_frame_size should be checked in QUICFlowController return frame; } diff --git a/iocore/net/quic/test/test_QUICFlowController.cc b/iocore/net/quic/test/test_QUICFlowController.cc index 3f9ca89..598b74e 100644 --- a/iocore/net/quic/test/test_QUICFlowController.cc +++
[trafficserver] branch master updated: Don't return QUIC frame if the size exceeds maximum frame size (#7121)
This is an automated email from the ASF dual-hosted git repository. zwoop 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 9e904ea Don't return QUIC frame if the size exceeds maximum frame size (#7121) 9e904ea is described below commit 9e904eab77e15dc895c4c723d553f2183ac85ef1 Author: Masakazu Kitajo AuthorDate: Fri Aug 28 23:37:59 2020 +0900 Don't return QUIC frame if the size exceeds maximum frame size (#7121) This fixes #7114 --- iocore/net/quic/QUICBidirectionalStream.cc | 9 +++ iocore/net/quic/QUICFlowController.cc | 1 + iocore/net/quic/QUICUnidirectionalStream.cc | 9 +++ iocore/net/quic/test/test_QUICFlowController.cc | 35 ++ iocore/net/quic/test/test_QUICStream.cc | 87 + 5 files changed, 141 insertions(+) diff --git a/iocore/net/quic/QUICBidirectionalStream.cc b/iocore/net/quic/QUICBidirectionalStream.cc index fbe75fb..4203ec0 100644 --- a/iocore/net/quic/QUICBidirectionalStream.cc +++ b/iocore/net/quic/QUICBidirectionalStream.cc @@ -381,6 +381,10 @@ QUICBidirectionalStream::generate_frame(uint8_t *buf, QUICEncryptionLevel level, // RESET_STREAM if (this->_reset_reason && !this->_is_reset_sent) { frame = QUICFrameFactory::create_rst_stream_frame(buf, *this->_reset_reason, this->_issue_frame_id(), this); +if (frame->size() > maximum_frame_size) { + frame->~QUICFrame(); + return nullptr; +} this->_records_rst_stream_frame(level, *static_cast(frame)); this->_state.update_with_sending_frame(*frame); this->_is_reset_sent = true; @@ -391,6 +395,10 @@ QUICBidirectionalStream::generate_frame(uint8_t *buf, QUICEncryptionLevel level, if (this->_stop_sending_reason && !this->_is_stop_sending_sent) { frame = QUICFrameFactory::create_stop_sending_frame(buf, this->id(), this->_stop_sending_reason->code, this->_issue_frame_id(), this); +if (frame->size() > maximum_frame_size) { + frame->~QUICFrame(); + return nullptr; +} this->_records_stop_sending_frame(level, *static_cast(frame)); this->_state.update_with_sending_frame(*frame); this->_is_stop_sending_sent = true; @@ -400,6 +408,7 @@ QUICBidirectionalStream::generate_frame(uint8_t *buf, QUICEncryptionLevel level, // MAX_STREAM_DATA frame = this->_local_flow_controller.generate_frame(buf, level, UINT16_MAX, maximum_frame_size, current_packet_size, seq_num); if (frame) { +// maximum_frame_size should be checked in QUICFlowController return frame; } diff --git a/iocore/net/quic/QUICFlowController.cc b/iocore/net/quic/QUICFlowController.cc index c818306..647e4c4 100644 --- a/iocore/net/quic/QUICFlowController.cc +++ b/iocore/net/quic/QUICFlowController.cc @@ -129,6 +129,7 @@ QUICFlowController::generate_frame(uint8_t *buf, QUICEncryptionLevel level, uint *(reinterpret_cast(info->data)) = this->_limit; this->_records_frame(frame->id(), std::move(info)); } else { +frame->~QUICFrame(); frame = nullptr; } } diff --git a/iocore/net/quic/QUICUnidirectionalStream.cc b/iocore/net/quic/QUICUnidirectionalStream.cc index 8fa77e6..c6a3d7a 100644 --- a/iocore/net/quic/QUICUnidirectionalStream.cc +++ b/iocore/net/quic/QUICUnidirectionalStream.cc @@ -150,6 +150,10 @@ QUICSendStream::generate_frame(uint8_t *buf, QUICEncryptionLevel level, uint64_t // RESET_STREAM if (this->_reset_reason && !this->_is_reset_sent) { frame = QUICFrameFactory::create_rst_stream_frame(buf, *this->_reset_reason, this->_issue_frame_id(), this); +if (frame->size() > maximum_frame_size) { + frame->~QUICFrame(); + return nullptr; +} this->_records_rst_stream_frame(level, *static_cast(frame)); this->_state.update_with_sending_frame(*frame); this->_is_reset_sent = true; @@ -551,6 +555,10 @@ QUICReceiveStream::generate_frame(uint8_t *buf, QUICEncryptionLevel level, uint6 if (this->_stop_sending_reason && !this->_is_stop_sending_sent) { frame = QUICFrameFactory::create_stop_sending_frame(buf, this->id(), this->_stop_sending_reason->code, this->_issue_frame_id(), this); +if (frame->size() > maximum_frame_size) { + frame->~QUICFrame(); + return nullptr; +} this->_records_stop_sending_frame(level, *static_cast(frame)); this->_state.update_with_sending_frame(*frame); this->_is_stop_sending_sent = true; @@ -559,6 +567,7 @@ QUICReceiveStream::generate_frame(uint8_t *buf, QUICEncryptionLevel level, uint6 // MAX_STREAM_DATA frame = this->_local_flow_controller.generate_frame(buf, level, UINT16_MAX, maximum_frame_size, current_packet_size, seq_num); + // maximum_frame_size should be checked in QUICFlowController return frame; } diff --git a/iocore/net/quic/test/test_QUICFlowController.cc
[trafficserver] branch master updated (90da85f -> 88b89d5)
This is an automated email from the ASF dual-hosted git repository. zwoop pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/trafficserver.git. from 90da85f Fix #7116, skip the insertion of the same continuation to pending dns (#7117) add 88b89d5 Check VIO availability before acquiring a lock for it (#7145) No new revisions were added by this update. Summary of changes: iocore/net/quic/QUICBidirectionalStream.cc | 144 ++-- iocore/net/quic/QUICUnidirectionalStream.cc | 144 ++-- iocore/net/quic/test/test_QUICStream.cc | 4 + 3 files changed, 146 insertions(+), 146 deletions(-)
[trafficserver] branch master updated: Fix #7116, skip the insertion of the same continuation to pending dns (#7117)
This is an automated email from the ASF dual-hosted git repository. zzz 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 90da85f Fix #7116, skip the insertion of the same continuation to pending dns (#7117) 90da85f is described below commit 90da85f6b55d792839719190a79e7a6bf8caa0c1 Author: Zizhong Zhang AuthorDate: Fri Aug 28 00:41:24 2020 -0700 Fix #7116, skip the insertion of the same continuation to pending dns (#7117) --- iocore/hostdb/HostDB.cc | 4 1 file changed, 4 insertions(+) diff --git a/iocore/hostdb/HostDB.cc b/iocore/hostdb/HostDB.cc index b79f74a..75ad469 100644 --- a/iocore/hostdb/HostDB.cc +++ b/iocore/hostdb/HostDB.cc @@ -1586,6 +1586,10 @@ HostDBContinuation::set_check_pending_dns() { Queue = hostDB.pending_dns_for_hash(hash.hash); this->setThreadAffinity(this_ethread()); + if (q.in(this)) { +Warning("Skip the insertion of the same continuation to pending dns"); +return false; + } HostDBContinuation *c = q.head; for (; c; c = static_cast(c->link.next)) { if (hash.hash == c->hash.hash) {