DescriptionMojo: Log an error on the remote message pipe leak condition.[1]
Don't enable the DCHECK, since it blows things up. Note that this
doesn't actually fix the bug.
Also fix RemoteMessagePipeTest.Multiplex, which is actually currently
broken[3]. (Though one might think that MessagePipe's destructor would
detect the missing Close()s, one would be wrong: Without closing, the
reference cycle wouldn't get broken (by design[4]), so nothing gets
destroyed. Oops.)
[1] Currently, usually (always?) one side will leak. The problem is that
we (only) detach on receiving a kSubtypeMessagePipePeerClosed
control message. But then we won't send one of our own.[2]
[2] The solution is probably to send an ack for these messages, and
detach on receiving the ack instead. This is tricky since you have
to handle the case when both sides simultaneously send the
peer-closed control message.
[3] That is, when this bug is fixed and the DCHECK enabled, the test
would still blow up.
[4] Possibly a bad design.
R=sky@chromium.org
BUG=360081
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=262803
Patch Set 1 #
Messages
Total messages: 5 (0 generated)
|