+
Skip to content
This repository was archived by the owner on Jun 27, 2023. It is now read-only.

Conversation

jseibert
Copy link
Contributor

@jseibert jseibert commented Apr 2, 2018

In the event that the current promise triggers another Channel operation serviced by this QueueHandler, channelRead() becomes re-entrant, and crashes with an assertion failure because the last callback in the queue is called twice, and then removed twice.

Instead, tidy up and remove the last handler before satisfying the promise.

In the event that the current promise triggers another Channel operation serviced by this QueueHandler, channelRead() becomes re-entrant, and crashes with an assertion failure because the last callback in the queue is called twice, and then removed twice.

Instead, tidy up and remove the last handler before satisfying the promise.
@tanner0101 tanner0101 self-assigned this Apr 4, 2018
@tanner0101 tanner0101 added the bug label Apr 4, 2018
@tanner0101 tanner0101 added this to the 3.0.2 milestone Apr 4, 2018
@tanner0101
Copy link
Member

@jseibert will merge this for 3.0.2, but is there any way you could provide a snippet to recreate the error? I would like to include that in a unit test somewhere so that we can make sure there are no regressions.

Copy link
Member

@tanner0101 tanner0101 left a comment

Choose a reason for hiding this comment

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

Thanks!

@tanner0101 tanner0101 merged commit 4cc852b into vapor:master Apr 5, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载