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

Merge main into protocol_changes #872

Merged
merged 21 commits into from
Mar 28, 2024
Merged

Merge main into protocol_changes #872

merged 21 commits into from
Mar 28, 2024

Conversation

Mallets
Copy link
Member

@Mallets Mallets commented Mar 28, 2024

No description provided.

YuanYuYuan and others added 18 commits March 14, 2024 15:19
* Tokio Porting (#566)

* Tokio porting in zenoh-link

* Porting further for transport

* Work around mixed runtime problem in async drop

* No need to await for tcp addresses anymore

* Use tokio runtime for the TX worker

* Replace all underlying runtime to tokio

* Tidy codes

* Add WIP lowlatency

* Finished the porting of pipelien. Note the usage of spawn_blocking

* Tokio porting on unixpipe

* Use async_global_executor::block_on

* work around the potential blocking task in unixpipe

* Replace Async<File>

* Replace Async<File> by AsyncFd<File>

* Fix the runtime problem while dropping

* Use ZRuntime. Note that low_latency_transport doesn't work

* Test with dashmap. There seems to be a deadlock while P2P scouting

* 1. Remove unneccessary async to solve block_on
2. Set non-blocking in UDP socket to use tokio UdpSocket

* Address block_on issues in unixpipe and low-latency transport

* Fix bug

* Use deref to call ZRuntime and tidy up unused imports

* Try with interval

* Use TX runtime only

* Ignore files starting with underscore

* Use all ZRuntimes

* Fix the busy loop in unixpipe

* Unifty the ztimeout macro and remove the zasync_executor_init

* Port zenoh/tests to tokio

* Fix the nested block_on issue

* Remove trailing whitespaces

* Fix the tests in io/zenoh-transport

* Remove async-std in zenoh/zenoh

* Remove async-std in zenohd

* WIP on tests of I/O

* Pass all tests in io and zenoh

* cargo fmt

* remove unused dashmap

* Finish the porting on examples

* Make from_config async again

* Use tokio::net::lookup_host to convert the address to socket addresses asynchronously

* Porting on zenoh-link-ws

* Cargo fmt

* Remove commented lines

* Tokio porting on serial

* Tidy up

* Add a throughput quick test script

* Tokio porting on udp

* Update Cargo.lock

* Correct the comment

* Correctly return the result

* Porting on zenoh-link-unixsocket_stream

* Correct the feature flag of tokio-util

* Port link-tls to tokio and bump workspace rustls to 0.22.2

* Port link-quic to tokio

* Turn get_listeners and get_locators into async calls. Use AsyncMutex and AsyncRwLock explicitly

* Tidy up ZRuntimes

* Tokio porting on zenoh-plugin-storage-manager

* Refine ZRuntime

* Enable the std feature of zenoh-result to convert std::io::Result

* Tokio porting on zenoh-sync

* tokio porting on object_pool

* tokio porting on plugins

* tokio porting on zenoh-ext

* Upgrade a few dependencies

* Tokio porting on doc

* Add the missing io trait

* Skip those troublesome tests

* Remove the unneeded ASYNC_STD_THREAD_COUNT

* Cargo fmt

* Use the environmental variable to configure ZRuntime

* Cargo fmt

* Tidy up tokio features

* Add the std feature used in zenoh-result

* Fix matching_status_* failures

* Speed up routing test and work around the failure of three_node_combination test

* Halve the chunk size

* Cargo clippy

* Prevent the race condition

* Turn three_node_combination into a sequential test

* Introduce CancellationToken to terminate anyway

* It turns out to be the large size payload fail the test.

* Fix deadlock by reintroducing five ZRuntimes

* Revert the tokio-porting on plugins since it cause a deadlock in routing test

* Adjust the ZRuntime properly to fix the deadlock in routing test

* Align plugins to the main as we would skip them in tokio porting

* Apply Luca's patch of object_pool to make it sync only

* Fix bug in matching

* Cargo clippy

* Add back TimedEvent to be compatible with plugins

* Fix tests

* Quickfix for plugins

* Rename token name

* Remove the unused Signal

* Introduce TaskTracker and CancellationToken into zenoh-link-tcp

* Let's use ZRuntime::Reception to handle accept_task

* Refine the testing scripts

* Let CI decide the minimal number of ZRuntime threads

* Make it easier to pass the test

* Revert "Let CI decide the minimal number of ZRuntime threads" since this
fail

This reverts commit de5c757.

* Cargo fmt & clippy

* Make cargo nextest more resilient

* Cargo fmt & clippy & doc test

* Add the missing Windows snippet

* Fix after rebase

* Remove the unneeded async-std

* Rename ZRuntime::Reception to ZRuntime::Acceptor

* Refine the PR

* Use tokio::time and slow down the message rate to 500 Hz in the downsampler test

* Fix tokio::time and use tokio socket bind_device

* Fix cargo clippy

* Cargo fmt

* Add the warning of 2ms resolution issue of tokio

* Address the unused variables

* Correct the error types

* Address the platform compiling issue

* Use warning while binding the interface

* Fix cargo clippy

* Use JoinHandle to manage the listening task

* Refine the TODO comments

---------

Co-authored-by: Luca Cominardi <[email protected]>

* Fix the missing runtime issues in the bindings' tests (#808)

* Put the spawning task on ZRuntime::TX

* Fix the bug of an async runtime demanded by UdpSocket::from_std

* Fix the permission denied while binding to None interface on some platforms (#826)

* Bugfix

---------

Co-authored-by: Luca Cominardi <[email protected]>
* fix: Set `live-run` to false on schedule event

* chore: Remove redundant publish-docker workflow
* Fix issue #835

* Bugfix
- Introduce connection retry config for listen and connect endpoints.
 - Listener initialisation reworked to add the connection retry.
 - Connection initialization reworked to be consistent with listening where it posible
 - Some configuration refactoring (ModeDependent related code moved to separate file)
Bumps [mio](https://github.com/tokio-rs/mio) from 0.8.8 to 0.8.11.
- [Release notes](https://github.com/tokio-rs/mio/releases)
- [Changelog](https://github.com/tokio-rs/mio/blob/master/CHANGELOG.md)
- [Commits](tokio-rs/mio@v0.8.8...v0.8.11)

---
updated-dependencies:
- dependency-name: mio
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Correct the indentation inside code blocks

* Remind the users start z_pong first
…Drop (#848)

* Add congestion_control/wait_before_drop config

* Fix sequence number restoration

* Change wait_before_drop unit from nanos to micros
@eclipse-zenoh-bot
Copy link
Contributor

@Mallets If this pull request contains a bugfix or a new feature, then please consider using Closes #ISSUE-NUMBER syntax to link it to an issue.

@milyin milyin merged commit 90a149e into protocol_changes Mar 28, 2024
15 checks passed
@milyin milyin deleted the protocol_tokio branch March 28, 2024 16:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

9 participants