-
Notifications
You must be signed in to change notification settings - Fork 172
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
Fix bugs querying liveliness tokens #1374
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…ze initial declarations push
fuzzypixelz
reviewed
Sep 9, 2024
fuzzypixelz
approved these changes
Sep 9, 2024
Mallets
added a commit
that referenced
this pull request
Sep 9, 2024
* Fix bug with QueryTarget ALL_COMPLETE in clients and peers (#1358) * Fix bug with QueryTarget ALL_COMPLETE in clients and peers * Fix BEST_MATCHING queryable selection * Properly fix Query targeting in non writer side filtering situations * Improve fix * Update zenoh/src/net/routing/hat/linkstate_peer/queries.rs Co-authored-by: Joseph Perez <[email protected]> * Update zenoh/src/net/routing/hat/p2p_peer/queries.rs Co-authored-by: Joseph Perez <[email protected]> * Update zenoh/src/net/routing/hat/router/queries.rs Co-authored-by: Joseph Perez <[email protected]> * Update zenoh/src/net/routing/hat/client/queries.rs Co-authored-by: Joseph Perez <[email protected]> * Remove non used ordered-float dependency --------- Co-authored-by: Luca Cominardi <[email protected]> Co-authored-by: Joseph Perez <[email protected]> * fix: publisher should not be clonable (#1370) * made builder traits internal (#1376) * scaffolding macro added * builder traits made internal * doc corrected * cargo fmt * typo fix * typo fix * Fix bugs querying liveliness tokens (#1374) * Fix bug in liveliness get in client * Fix bug treating token interests replies from routers in peers * Peers propagate current token interests to remote peers with unfinalize initial declarations push * Don't register current interests declaration replies * Add comments * Add comments * Add comments --------- Co-authored-by: OlivierHecart <[email protected]> Co-authored-by: Luca Cominardi <[email protected]> Co-authored-by: Michael Ilyin <[email protected]>
Mallets
added a commit
that referenced
this pull request
Sep 12, 2024
* feat!: bind callback subscriber/queryable to session lifetime To determine if the entity is callback-only, the only elegant way I've found is the rule "handler is ZST means callback-only". Unless users starts writing fancy implementations, it should be correct 100% of the time. Session entities now uses weak references, except publishers because it would impact performances. Weak references also solves the issue of mass undeclarations before closing the session (when the session is an `Arc`), except for publishers. `Undeclarable` trait has been refactored a little bit to better match its use in the code. * fix: fix example * fix: fix example * fix: add missing comment about ZST trick * Update zenoh/src/api/key_expr.rs Co-authored-by: Luca Cominardi <[email protected]> * fix: formatting * fix: don't use `Weak` when undeclared on drop * feat!: make session an arc-like object The refactoring is quite deep, so this is the first (dirty) iteration which passes the tests. * fix: use weak everywhere! * fix: fix doc * feat: use pseudo-weak session with the same perf than arc * fix: fix resource cleanup * Fix typo * fix: align `MatchingListener` undeclaration on drop behavior * refactor: add comments about `WeakSession` * refactor: add comment for `Session` and `Session::close` (#1369) * refactor: add comment for `Session` and `Session::close` * Update zenoh/src/api/session.rs Co-authored-by: Luca Cominardi <[email protected]> * Update zenoh/src/api/session.rs Co-authored-by: Luca Cominardi <[email protected]> * Update zenoh/src/api/session.rs Co-authored-by: Luca Cominardi <[email protected]> * fix: don't run `Session::close` example * fix: fix `Session` example * fix: fix `Session` doc --------- Co-authored-by: Luca Cominardi <[email protected]> * feat: use builder method instead of handler type for undeclaration on drop (#1377) * refactor: add comment for `Session` and `Session::close` * Update zenoh/src/api/session.rs Co-authored-by: Luca Cominardi <[email protected]> * Update zenoh/src/api/session.rs Co-authored-by: Luca Cominardi <[email protected]> * Update zenoh/src/api/session.rs Co-authored-by: Luca Cominardi <[email protected]> * fix: don't run `Session::close` example * fix: fix `Session` example * fix: fix `Session` doc * feat: use builder method instead of handler type for undeclaration on drop --------- Co-authored-by: Luca Cominardi <[email protected]> * chore: merge main into dev/arcsession (#1378) * Fix bug with QueryTarget ALL_COMPLETE in clients and peers (#1358) * Fix bug with QueryTarget ALL_COMPLETE in clients and peers * Fix BEST_MATCHING queryable selection * Properly fix Query targeting in non writer side filtering situations * Improve fix * Update zenoh/src/net/routing/hat/linkstate_peer/queries.rs Co-authored-by: Joseph Perez <[email protected]> * Update zenoh/src/net/routing/hat/p2p_peer/queries.rs Co-authored-by: Joseph Perez <[email protected]> * Update zenoh/src/net/routing/hat/router/queries.rs Co-authored-by: Joseph Perez <[email protected]> * Update zenoh/src/net/routing/hat/client/queries.rs Co-authored-by: Joseph Perez <[email protected]> * Remove non used ordered-float dependency --------- Co-authored-by: Luca Cominardi <[email protected]> Co-authored-by: Joseph Perez <[email protected]> * fix: publisher should not be clonable (#1370) * made builder traits internal (#1376) * scaffolding macro added * builder traits made internal * doc corrected * cargo fmt * typo fix * typo fix * Fix bugs querying liveliness tokens (#1374) * Fix bug in liveliness get in client * Fix bug treating token interests replies from routers in peers * Peers propagate current token interests to remote peers with unfinalize initial declarations push * Don't register current interests declaration replies * Add comments * Add comments * Add comments --------- Co-authored-by: OlivierHecart <[email protected]> Co-authored-by: Luca Cominardi <[email protected]> Co-authored-by: Michael Ilyin <[email protected]> * Revert "chore: merge main into dev/arcsession (#1378)" (#1379) This reverts commit f3f5403. * fix: various fixes * fix: various fixes (2) * chore: merge branch 'main' into 'dev/arcsession' (#1384) * feat(zenoh_id): exposing into slice & try from slice Allowing users to create a ZenohId from a slice, using TryFrom, and also allowing users to convert a ZenohId into a [u8; 16]. * Add LivlinessSubscriber history option (#1355) * Close #1357 * feat(zenoh_id): replacing from slice with function --------- Co-authored-by: Darius Maitia <[email protected]> Co-authored-by: OlivierHecart <[email protected]> Co-authored-by: Luca Cominardi <[email protected]> * refactor: use `IntoHandler` associated const for undeclaration on drop * refactor: remove prelude * fix: fix config example * fix: fix zenoh-ext examples * fix: fix plugins examples * fix: fix merge * Fix shm test * Fix clippy warnings * refactor: use builder method for undeclaration on drop * fix: remove useless lifetimes * fix: add missing unstable flag * feat: add tuple implementation for IntoHandler --------- Co-authored-by: Joseph Perez <[email protected]> Co-authored-by: OlivierHecart <[email protected]> Co-authored-by: Michael Ilyin <[email protected]> Co-authored-by: Darius Maitia <[email protected]>
fuzzypixelz
pushed a commit
that referenced
this pull request
Sep 23, 2024
* Fix bug in liveliness get in client * Fix bug treating token interests replies from routers in peers * Peers propagate current token interests to remote peers with unfinalize initial declarations push * Don't register current interests declaration replies * Add comments * Add comments * Add comments
fuzzypixelz
pushed a commit
that referenced
this pull request
Sep 23, 2024
* feat!: bind callback subscriber/queryable to session lifetime To determine if the entity is callback-only, the only elegant way I've found is the rule "handler is ZST means callback-only". Unless users starts writing fancy implementations, it should be correct 100% of the time. Session entities now uses weak references, except publishers because it would impact performances. Weak references also solves the issue of mass undeclarations before closing the session (when the session is an `Arc`), except for publishers. `Undeclarable` trait has been refactored a little bit to better match its use in the code. * fix: fix example * fix: fix example * fix: add missing comment about ZST trick * Update zenoh/src/api/key_expr.rs Co-authored-by: Luca Cominardi <[email protected]> * fix: formatting * fix: don't use `Weak` when undeclared on drop * feat!: make session an arc-like object The refactoring is quite deep, so this is the first (dirty) iteration which passes the tests. * fix: use weak everywhere! * fix: fix doc * feat: use pseudo-weak session with the same perf than arc * fix: fix resource cleanup * Fix typo * fix: align `MatchingListener` undeclaration on drop behavior * refactor: add comments about `WeakSession` * refactor: add comment for `Session` and `Session::close` (#1369) * refactor: add comment for `Session` and `Session::close` * Update zenoh/src/api/session.rs Co-authored-by: Luca Cominardi <[email protected]> * Update zenoh/src/api/session.rs Co-authored-by: Luca Cominardi <[email protected]> * Update zenoh/src/api/session.rs Co-authored-by: Luca Cominardi <[email protected]> * fix: don't run `Session::close` example * fix: fix `Session` example * fix: fix `Session` doc --------- Co-authored-by: Luca Cominardi <[email protected]> * feat: use builder method instead of handler type for undeclaration on drop (#1377) * refactor: add comment for `Session` and `Session::close` * Update zenoh/src/api/session.rs Co-authored-by: Luca Cominardi <[email protected]> * Update zenoh/src/api/session.rs Co-authored-by: Luca Cominardi <[email protected]> * Update zenoh/src/api/session.rs Co-authored-by: Luca Cominardi <[email protected]> * fix: don't run `Session::close` example * fix: fix `Session` example * fix: fix `Session` doc * feat: use builder method instead of handler type for undeclaration on drop --------- Co-authored-by: Luca Cominardi <[email protected]> * chore: merge main into dev/arcsession (#1378) * Fix bug with QueryTarget ALL_COMPLETE in clients and peers (#1358) * Fix bug with QueryTarget ALL_COMPLETE in clients and peers * Fix BEST_MATCHING queryable selection * Properly fix Query targeting in non writer side filtering situations * Improve fix * Update zenoh/src/net/routing/hat/linkstate_peer/queries.rs Co-authored-by: Joseph Perez <[email protected]> * Update zenoh/src/net/routing/hat/p2p_peer/queries.rs Co-authored-by: Joseph Perez <[email protected]> * Update zenoh/src/net/routing/hat/router/queries.rs Co-authored-by: Joseph Perez <[email protected]> * Update zenoh/src/net/routing/hat/client/queries.rs Co-authored-by: Joseph Perez <[email protected]> * Remove non used ordered-float dependency --------- Co-authored-by: Luca Cominardi <[email protected]> Co-authored-by: Joseph Perez <[email protected]> * fix: publisher should not be clonable (#1370) * made builder traits internal (#1376) * scaffolding macro added * builder traits made internal * doc corrected * cargo fmt * typo fix * typo fix * Fix bugs querying liveliness tokens (#1374) * Fix bug in liveliness get in client * Fix bug treating token interests replies from routers in peers * Peers propagate current token interests to remote peers with unfinalize initial declarations push * Don't register current interests declaration replies * Add comments * Add comments * Add comments --------- Co-authored-by: OlivierHecart <[email protected]> Co-authored-by: Luca Cominardi <[email protected]> Co-authored-by: Michael Ilyin <[email protected]> * Revert "chore: merge main into dev/arcsession (#1378)" (#1379) This reverts commit f3f5403. * fix: various fixes * fix: various fixes (2) * chore: merge branch 'main' into 'dev/arcsession' (#1384) * feat(zenoh_id): exposing into slice & try from slice Allowing users to create a ZenohId from a slice, using TryFrom, and also allowing users to convert a ZenohId into a [u8; 16]. * Add LivlinessSubscriber history option (#1355) * Close #1357 * feat(zenoh_id): replacing from slice with function --------- Co-authored-by: Darius Maitia <[email protected]> Co-authored-by: OlivierHecart <[email protected]> Co-authored-by: Luca Cominardi <[email protected]> * refactor: use `IntoHandler` associated const for undeclaration on drop * refactor: remove prelude * fix: fix config example * fix: fix zenoh-ext examples * fix: fix plugins examples * fix: fix merge * Fix shm test * Fix clippy warnings * refactor: use builder method for undeclaration on drop * fix: remove useless lifetimes * fix: add missing unstable flag * feat: add tuple implementation for IntoHandler --------- Co-authored-by: Joseph Perez <[email protected]> Co-authored-by: OlivierHecart <[email protected]> Co-authored-by: Michael Ilyin <[email protected]> Co-authored-by: Darius Maitia <[email protected]>
fuzzypixelz
pushed a commit
that referenced
this pull request
Sep 23, 2024
* Fix bug in liveliness get in client * Fix bug treating token interests replies from routers in peers * Peers propagate current token interests to remote peers with unfinalize initial declarations push * Don't register current interests declaration replies * Add comments * Add comments * Add comments
fuzzypixelz
pushed a commit
that referenced
this pull request
Sep 23, 2024
* feat!: bind callback subscriber/queryable to session lifetime To determine if the entity is callback-only, the only elegant way I've found is the rule "handler is ZST means callback-only". Unless users starts writing fancy implementations, it should be correct 100% of the time. Session entities now uses weak references, except publishers because it would impact performances. Weak references also solves the issue of mass undeclarations before closing the session (when the session is an `Arc`), except for publishers. `Undeclarable` trait has been refactored a little bit to better match its use in the code. * fix: fix example * fix: fix example * fix: add missing comment about ZST trick * Update zenoh/src/api/key_expr.rs Co-authored-by: Luca Cominardi <[email protected]> * fix: formatting * fix: don't use `Weak` when undeclared on drop * feat!: make session an arc-like object The refactoring is quite deep, so this is the first (dirty) iteration which passes the tests. * fix: use weak everywhere! * fix: fix doc * feat: use pseudo-weak session with the same perf than arc * fix: fix resource cleanup * Fix typo * fix: align `MatchingListener` undeclaration on drop behavior * refactor: add comments about `WeakSession` * refactor: add comment for `Session` and `Session::close` (#1369) * refactor: add comment for `Session` and `Session::close` * Update zenoh/src/api/session.rs Co-authored-by: Luca Cominardi <[email protected]> * Update zenoh/src/api/session.rs Co-authored-by: Luca Cominardi <[email protected]> * Update zenoh/src/api/session.rs Co-authored-by: Luca Cominardi <[email protected]> * fix: don't run `Session::close` example * fix: fix `Session` example * fix: fix `Session` doc --------- Co-authored-by: Luca Cominardi <[email protected]> * feat: use builder method instead of handler type for undeclaration on drop (#1377) * refactor: add comment for `Session` and `Session::close` * Update zenoh/src/api/session.rs Co-authored-by: Luca Cominardi <[email protected]> * Update zenoh/src/api/session.rs Co-authored-by: Luca Cominardi <[email protected]> * Update zenoh/src/api/session.rs Co-authored-by: Luca Cominardi <[email protected]> * fix: don't run `Session::close` example * fix: fix `Session` example * fix: fix `Session` doc * feat: use builder method instead of handler type for undeclaration on drop --------- Co-authored-by: Luca Cominardi <[email protected]> * chore: merge main into dev/arcsession (#1378) * Fix bug with QueryTarget ALL_COMPLETE in clients and peers (#1358) * Fix bug with QueryTarget ALL_COMPLETE in clients and peers * Fix BEST_MATCHING queryable selection * Properly fix Query targeting in non writer side filtering situations * Improve fix * Update zenoh/src/net/routing/hat/linkstate_peer/queries.rs Co-authored-by: Joseph Perez <[email protected]> * Update zenoh/src/net/routing/hat/p2p_peer/queries.rs Co-authored-by: Joseph Perez <[email protected]> * Update zenoh/src/net/routing/hat/router/queries.rs Co-authored-by: Joseph Perez <[email protected]> * Update zenoh/src/net/routing/hat/client/queries.rs Co-authored-by: Joseph Perez <[email protected]> * Remove non used ordered-float dependency --------- Co-authored-by: Luca Cominardi <[email protected]> Co-authored-by: Joseph Perez <[email protected]> * fix: publisher should not be clonable (#1370) * made builder traits internal (#1376) * scaffolding macro added * builder traits made internal * doc corrected * cargo fmt * typo fix * typo fix * Fix bugs querying liveliness tokens (#1374) * Fix bug in liveliness get in client * Fix bug treating token interests replies from routers in peers * Peers propagate current token interests to remote peers with unfinalize initial declarations push * Don't register current interests declaration replies * Add comments * Add comments * Add comments --------- Co-authored-by: OlivierHecart <[email protected]> Co-authored-by: Luca Cominardi <[email protected]> Co-authored-by: Michael Ilyin <[email protected]> * Revert "chore: merge main into dev/arcsession (#1378)" (#1379) This reverts commit f3f5403. * fix: various fixes * fix: various fixes (2) * chore: merge branch 'main' into 'dev/arcsession' (#1384) * feat(zenoh_id): exposing into slice & try from slice Allowing users to create a ZenohId from a slice, using TryFrom, and also allowing users to convert a ZenohId into a [u8; 16]. * Add LivlinessSubscriber history option (#1355) * Close #1357 * feat(zenoh_id): replacing from slice with function --------- Co-authored-by: Darius Maitia <[email protected]> Co-authored-by: OlivierHecart <[email protected]> Co-authored-by: Luca Cominardi <[email protected]> * refactor: use `IntoHandler` associated const for undeclaration on drop * refactor: remove prelude * fix: fix config example * fix: fix zenoh-ext examples * fix: fix plugins examples * fix: fix merge * Fix shm test * Fix clippy warnings * refactor: use builder method for undeclaration on drop * fix: remove useless lifetimes * fix: add missing unstable flag * feat: add tuple implementation for IntoHandler --------- Co-authored-by: Joseph Perez <[email protected]> Co-authored-by: OlivierHecart <[email protected]> Co-authored-by: Michael Ilyin <[email protected]> Co-authored-by: Darius Maitia <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.