Skip to content

http: fixing a bug in commonContinue#7720

Merged
alyssawilk merged 3 commits intoenvoyproxy:masterfrom
alyssawilk:continue2
Jul 29, 2019
Merged

http: fixing a bug in commonContinue#7720
alyssawilk merged 3 commits intoenvoyproxy:masterfrom
alyssawilk:continue2

Conversation

@alyssawilk
Copy link
Copy Markdown
Contributor

Risk Level: High (change to HCM)
Testing: new integration test, with header
Docs Changes: n/a
Release Notes: n/a
Fixes #7595

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
@alyssawilk
Copy link
Copy Markdown
Contributor Author

Alternate to #7708

Copy link
Copy Markdown
Member

@mattklein123 mattklein123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this fix much better. WDYT about proceeding with review of this one vs. the other one?

@alyssawilk
Copy link
Copy Markdown
Contributor Author

fine by me

mattklein123
mattklein123 previously approved these changes Jul 25, 2019
Copy link
Copy Markdown
Member

@mattklein123 mattklein123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, this looks great to me. If possible it would be great to get @soya3129 to review before merging.

buffer_was_streaming = status == FilterDataStatus::StopIterationAndWatermark;
commonHandleBufferData(provided_data);
} else if (complete() && !trailers() && !bufferedData()) {
// If this filter is doing StopIterationNoBuffer and this stream is terminated with a zero
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: maybe add ASSERT(end_stream_);?

@soya3129
Copy link
Copy Markdown
Contributor

LGTM.

One thing to notice is that a pending PR by @snowp makes sure when a filter returns Continue, the buffered data will get propagated (they are not propagated now). I think in @snowp's PR, we may need a test to verify when a filter adds an empty data frame to end the stream and returns continue, we won't double fin. We don't double fin now because of #7579.

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
Copy link
Copy Markdown
Member

@mattklein123 mattklein123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

segfault in ActiveStreamFilterBase::commonContinue()

3 participants