veloren/network/src
Marcel Märtens e914c29728 FIX for hanging participant deletion.
There is a rare bug that recently got triggered more often with the release of xMAC94x/netfixA
if the bug triggeres, a Participant never gets cleaned up gracefully.

Reason:
When `participant_shutdown_mgr` was called it stopped all managers at once.
Especially stream_close_mgr and send_mgr.
The problem with stream_close_mgr is, it's responsible for gracefully flushing streams when the Participant is dropped locally.
So when it was interupted self.streams where no longer flushed gracefully.
The next problem was with send_mgr.
It is triggering the PrioManager, and the PrioManager is responsible for notifying once a stream is completly flushed.
This lead to the problem, that a stream flush could be requested, but was actually never executed (as send_mgr was already down).

Solution:
1. when stream_close_mgr is stopped it MUST flush all remaining streams
2. wait for stream_close_mgr to finish before shutting down the send_mgr
3. no longer delete streams when closing the API (this also wasn't tracked in metrics so far)

Additionally i added a dependency, so that the network/examples compile again, fixed some spelling.
I created a `delete_stream` fn that basically just moved the code over.
2020-10-14 15:03:49 +02:00
..
api.rs FIX for hanging participant deletion. 2020-10-14 15:03:49 +02:00
channel.rs fix compiling with metrics 2020-08-27 09:35:06 +02:00
lib.rs Added #![deny(clippy::clone_on_ref_ptr)] to all crates and fixed resulting lint errors 2020-09-27 17:25:33 +01:00
message.rs Propper Compression support of network. 2020-08-25 23:55:27 +02:00
metrics.rs reduce load on metrics by ALOT! 2020-08-27 01:55:13 +02:00
participant.rs FIX for hanging participant deletion. 2020-10-14 15:03:49 +02:00
prios.rs quickfix for closing participants more reliable 2020-10-13 20:06:20 +02:00
protocols.rs Corrected some spelling errors 2020-08-25 12:21:25 +00:00
scheduler.rs add more tracing and drop lock earlier 2020-10-13 19:01:53 +02:00
types.rs Propper Compression support of network. 2020-08-25 23:55:27 +02:00