Retraction of nonexistent handle is OK in relay
/ build (push) Has been cancelled
Details
/ build (push) Has been cancelled
Details
This commit is contained in:
parent
f84405c686
commit
4c47a620d6
|
@ -427,15 +427,20 @@ impl TunnelRelay {
|
||||||
}
|
}
|
||||||
P::Event::Retract(b) => {
|
P::Event::Retract(b) => {
|
||||||
let P::Retract { handle: remote_handle } = *b;
|
let P::Retract { handle: remote_handle } = *b;
|
||||||
let (local_handle, previous_pins) = match self.inbound_assertions.remove(&remote_handle) {
|
match self.inbound_assertions.remove(&remote_handle) {
|
||||||
None => return Err(error("Retraction of nonexistent handle", language().unparse(&remote_handle)))?,
|
None => {
|
||||||
Some(wss) => wss,
|
// This can happen when e.g. an assertion previously made
|
||||||
};
|
// failed to pass an attenuation filter
|
||||||
|
tracing::debug!(?remote_handle, "Retraction of nonexistent handle");
|
||||||
|
}
|
||||||
|
Some((local_handle, previous_pins)) => {
|
||||||
self.membranes.release(previous_pins);
|
self.membranes.release(previous_pins);
|
||||||
self.membranes.release(pins);
|
self.membranes.release(pins);
|
||||||
t.retract(local_handle);
|
t.retract(local_handle);
|
||||||
dump_membranes!(self.membranes);
|
dump_membranes!(self.membranes);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
P::Event::Message(b) => {
|
P::Event::Message(b) => {
|
||||||
let P::Message { body: P::Assertion(a) } = *b;
|
let P::Message { body: P::Assertion(a) } = *b;
|
||||||
a.foreach_embedded(&mut |r| {
|
a.foreach_embedded(&mut |r| {
|
||||||
|
|
Loading…
Reference in New Issue