Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Start link tx_task before notifying router #1098

Merged
merged 1 commit into from
Jun 10, 2024
Merged

Start link tx_task before notifying router #1098

merged 1 commit into from
Jun 10, 2024

Conversation

Mallets
Copy link
Member

@Mallets Mallets commented Jun 7, 2024

The routing logic is notified of a new link available upon new transport or link establishment.
However, the task consuming the transmission queue for that link is started only after the routing callback returns.
In case the routing logic needs to propagate many declarations, it will be filling up the queue and it will block since no transmission task has been started yet.

This PR modifies this behaviour by starting the transmission task before calling the routing logic callback.

@Mallets
Copy link
Member Author

Mallets commented Jun 7, 2024

@yellowhatter can you please help in reviewing this PR?

Copy link
Contributor

@yellowhatter yellowhatter left a comment

Choose a reason for hiding this comment

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

Looks good!

@Mallets Mallets merged commit 528b87a into main Jun 10, 2024
21 checks passed
@Mallets Mallets deleted the fix/tx_task branch June 10, 2024 10:43
Mallets added a commit that referenced this pull request Jun 19, 2024
* Add NOTE for LowLatency transport. (#1088)

Signed-off-by: ChenYing Kuo <evshary@gmail.com>

* fix: Improve debug messages in `zenoh-transport` (#1090)

* fix: Improve debug messages for failing RX/TX tasks

* fix: Improve debug message for `accept_link` timeout

* chore: Fix `clippy::redundant_pattern_matching` error

* Improve pipeline backoff (#1097)

* Yield task for backoff

* Improve comments and error handling in backoff

* Simplify pipeline pull

* Consider backoff configuration

* Add typos check to CI (#1065)

* Fix typos

* Add typos check to CI

* Start link tx_task before notifying router (#1098)

* Fix typos (#1110)

* bump quinn & rustls (#1086)

* bump quinn & rustls

* fix ci windows check

* add comments

* Fix interface name scanning when listening on IP unspecified for TCP/TLS/QUIC/WS (#1123)

Co-authored-by: Julien Enoch <julien.e@zettascale.tech>

* Enable releasing from any branch (#1136)

* Fix cargo clippy (#1145)

* Release tables locks before propagating subscribers and queryables declarations to void dead locks (#1150)

* Send simple sub and qabl declarations using a given function

* Send simple sub and qabl declarations after releasing tables lock

* Send simple sub and qabl declarations after releasing tables lock (missing places)

* Update async-io

* Update base64 dependency

* Update event-listener dependency

* Update jsonschema dependency

* Update keyed-set dependency

* Update console-subscriber dependency

* Update pnet dependency

* Update rcgen dependency

* Update tokio-tungstenite dependency

* Update thread-priority dependency

* Fix typos

* Fix typos

* Add Unicode-3.0 to allowed licenses

---------

Signed-off-by: ChenYing Kuo <evshary@gmail.com>
Co-authored-by: ChenYing Kuo (CY) <evshary@gmail.com>
Co-authored-by: Mahmoud Mazouz <mazouz.mahmoud@outlook.com>
Co-authored-by: Luca Cominardi <luca.cominardi@gmail.com>
Co-authored-by: Tavo Annus <tavo.annus@gmail.com>
Co-authored-by: JLer <jlerxky@live.com>
Co-authored-by: Julien Enoch <julien.e@zettascale.tech>
Mallets added a commit that referenced this pull request Jul 30, 2024
* Add NOTE for LowLatency transport. (#1088)

Signed-off-by: ChenYing Kuo <evshary@gmail.com>

* fix: Improve debug messages in `zenoh-transport` (#1090)

* fix: Improve debug messages for failing RX/TX tasks

* fix: Improve debug message for `accept_link` timeout

* chore: Fix `clippy::redundant_pattern_matching` error

* Improve pipeline backoff (#1097)

* Yield task for backoff

* Improve comments and error handling in backoff

* Simplify pipeline pull

* Consider backoff configuration

* Add typos check to CI (#1065)

* Fix typos

* Add typos check to CI

* Start link tx_task before notifying router (#1098)

* Fix typos (#1110)

* bump quinn & rustls (#1086)

* bump quinn & rustls

* fix ci windows check

* add comments

* Fix interface name scanning when listening on IP unspecified for TCP/TLS/QUIC/WS (#1123)

Co-authored-by: Julien Enoch <julien.e@zettascale.tech>

* Enable releasing from any branch (#1136)

* Fix cargo clippy (#1145)

* Release tables locks before propagating subscribers and queryables declarations to void dead locks (#1150)

* Send simple sub and qabl declarations using a given function

* Send simple sub and qabl declarations after releasing tables lock

* Send simple sub and qabl declarations after releasing tables lock (missing places)

* feat: make `TerminatableTask` terminate itself when dropped (#1151)

* Fix bug in keyexpr::includes leading to call get_unchecked on empty array UB (#1208)

* REST plugin uses unbounded flume channels for queries (#1213)

* fix: typo in selector.rs (#1228)

* fix: zenohd --cfg (#1263)

* fix: zenohd --cfg

* ci: trigger

* Update zenohd/src/main.rs

---------

Co-authored-by: Luca Cominardi <luca.cominardi@gmail.com>

* Fix failover brokering bug reacting to linkstate changes (#1272)

* Change missleading log

* Fix failover brokering bug reacting to linkstate changes

* Retrigger CI

---------

Co-authored-by: Luca Cominardi <luca.cominardi@gmail.com>

* Code format

* Fix clippy warnings

* Code format

* Fix Clippy errors from Rust 1.80 (#1273)

* Allow unexpected `doc_auto_cfg` flag

* Keep never-constructed logger interceptor

* Ignore interior mutability of `Resource`

* Fix typo

* Resolve `clippy::doc-lazy-continuation` errors

* Upgrade `time@0.3.28` to `time@0.3.36`

See time-rs/time#693

* Update Cargo.toml (#1277)

Updated description to be aligned with what we use everywhere else

* Merge ci.yaml

---------

Signed-off-by: ChenYing Kuo <evshary@gmail.com>
Co-authored-by: ChenYing Kuo (CY) <evshary@gmail.com>
Co-authored-by: Mahmoud Mazouz <mazouz.mahmoud@outlook.com>
Co-authored-by: Tavo Annus <tavo.annus@gmail.com>
Co-authored-by: JLer <jlerxky@live.com>
Co-authored-by: Julien Enoch <julien.e@zettascale.tech>
Co-authored-by: OlivierHecart <olivier@zettascale.tech>
Co-authored-by: Yuyuan Yuan <az6980522@gmail.com>
Co-authored-by: Diogo Matsubara <diogo.matsubara@zettascale.tech>
Co-authored-by: OlivierHecart <olivier.hecart@adlinktech.com>
Co-authored-by: kydos <kydos@protonmail.com>
Mallets added a commit that referenced this pull request Aug 27, 2024
* Add NOTE for LowLatency transport. (#1088)

Signed-off-by: ChenYing Kuo <evshary@gmail.com>

* fix: Improve debug messages in `zenoh-transport` (#1090)

* fix: Improve debug messages for failing RX/TX tasks

* fix: Improve debug message for `accept_link` timeout

* chore: Fix `clippy::redundant_pattern_matching` error

* Improve pipeline backoff (#1097)

* Yield task for backoff

* Improve comments and error handling in backoff

* Simplify pipeline pull

* Consider backoff configuration

* Add typos check to CI (#1065)

* Fix typos

* Add typos check to CI

* Start link tx_task before notifying router (#1098)

* Fix typos (#1110)

* bump quinn & rustls (#1086)

* bump quinn & rustls

* fix ci windows check

* add comments

* Fix interface name scanning when listening on IP unspecified for TCP/TLS/QUIC/WS (#1123)

Co-authored-by: Julien Enoch <julien.e@zettascale.tech>

* Enable releasing from any branch (#1136)

* Fix cargo clippy (#1145)

* Release tables locks before propagating subscribers and queryables declarations to void dead locks (#1150)

* Send simple sub and qabl declarations using a given function

* Send simple sub and qabl declarations after releasing tables lock

* Send simple sub and qabl declarations after releasing tables lock (missing places)

* feat: make `TerminatableTask` terminate itself when dropped (#1151)

* Fix bug in keyexpr::includes leading to call get_unchecked on empty array UB (#1208)

* REST plugin uses unbounded flume channels for queries (#1213)

* fix: typo in selector.rs (#1228)

* fix: zenohd --cfg (#1263)

* fix: zenohd --cfg

* ci: trigger

* Update zenohd/src/main.rs

---------

Co-authored-by: Luca Cominardi <luca.cominardi@gmail.com>

* Fix failover brokering bug reacting to linkstate changes (#1272)

* Change missleading log

* Fix failover brokering bug reacting to linkstate changes

* Retrigger CI

---------

Co-authored-by: Luca Cominardi <luca.cominardi@gmail.com>

* Code format

* Fix clippy warnings

* Code format

* Fix Clippy errors from Rust 1.80 (#1273)

* Allow unexpected `doc_auto_cfg` flag

* Keep never-constructed logger interceptor

* Ignore interior mutability of `Resource`

* Fix typo

* Resolve `clippy::doc-lazy-continuation` errors

* Upgrade `time@0.3.28` to `time@0.3.36`

See time-rs/time#693

* Update Cargo.toml (#1277)

Updated description to be aligned with what we use everywhere else

* fix: typos (#1297)

* Replace trees computation tasks with a worker (#1303)

* Replace trees computation tasks with a worker

* Address review comments

* Remove review comments

* zenohd-default config error #1292 (#1298)

* Zenohd panic when tring load file

When zenohd trying load file, if it have a problem it crash cause another treat was "unwrap", and it return to a type config. So, it crash and cause painic.

* zenohd default config error #1292

When tring load config file defined by -c option. With haver any problema "unwrap" has been to Config type.

I treat it return a Default Config whe it happen

* If file fail when try load configs

If file fail when try load configs

* Update main.rs

* Resolve typos at comment

Resolve typos at comment

* fix: typos (#1297)

* zenohd-default config error #1292 (#1298)

* Zenohd panic when tring load file

When zenohd trying load file, if it have a problem it crash cause another treat was "unwrap", and it return to a type config. So, it crash and cause painic.

* zenohd default config error #1292

When tring load config file defined by -c option. With haver any problema "unwrap" has been to Config type.

I treat it return a Default Config whe it happen

* If file fail when try load configs

If file fail when try load configs

* Update main.rs

* Resolve typos at comment

Resolve typos at comment

* Replace trees computation tasks with a worker (#1303)

* Replace trees computation tasks with a worker

* Address review comments

* Remove review comments

* revering fix #1298

---------

Signed-off-by: ChenYing Kuo <evshary@gmail.com>
Co-authored-by: ChenYing Kuo (CY) <evshary@gmail.com>
Co-authored-by: Mahmoud Mazouz <mazouz.mahmoud@outlook.com>
Co-authored-by: Luca Cominardi <luca.cominardi@gmail.com>
Co-authored-by: Tavo Annus <tavo.annus@gmail.com>
Co-authored-by: JLer <jlerxky@live.com>
Co-authored-by: Julien Enoch <julien.e@zettascale.tech>
Co-authored-by: OlivierHecart <olivier@zettascale.tech>
Co-authored-by: Yuyuan Yuan <az6980522@gmail.com>
Co-authored-by: Diogo Matsubara <diogo.matsubara@zettascale.tech>
Co-authored-by: OlivierHecart <olivier.hecart@adlinktech.com>
Co-authored-by: kydos <kydos@protonmail.com>
Co-authored-by: brianPA <80439594+brian049@users.noreply.github.com>
Co-authored-by: Tiago Neves <32251249+anhaabaete@users.noreply.github.com>
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.

2 participants