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

Connection and DIDX Problem Reports #2653

Merged

Conversation

usingtechnology
Copy link
Contributor

  • add current message thread to problem report messages to identify which message/thread encountered the problem.
  • problem report handlers will find connections based on thread/request id
  • register didx problem report so handler will be active and deal with didx problem reports
  • update tests to match new handler logic

fixes #2650
fixes #2598

A lot of underlying issues uncovered (and now addressed) arising from #2530 investigation.

Synopsis is the implemented logic for sending/handling connection (and didx) problem reports that require a fully working connection. This prevented us from notifying if the problem arose during the request or early response stages. That is addressed by allowing the problem report message types to skip the active check in the responder. Then the next issue was the agent receiving the problem report could not match up their connection, so the sender adds the failing message's thread to the problem report message before delivery, the receiver can then look up connections by a known thread id. Then the DIDX problem report code was always failing when trying to determine the messages targets, so that code was updated to handle diddoc attach conversion to diddoc and then resolve the targets. Then uncovered the fact that the DIDX problem reports (and handler) were not registered in the protocol message registry so those wouldn't get handled when we finally parsed the targets.

Sigh, lots of stuff that just never worked... 🤷 ...hoping that these fixes will be of use when there are issues in the early stages of connecting agents.

usingtechnology and others added 2 commits December 6, 2023 11:43
- add current message thread to problem report messages to identify which message/thread encountered the problem.
- problem report handlers will find connections based on thread/request id
- register didx problem report so handler will be active and deal with didx problem reports
- update tests to match new handler logic

Signed-off-by: Jason Sherman <[email protected]>
Copy link

sonarqubecloud bot commented Dec 6, 2023

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
No Duplication information No Duplication information

Copy link
Contributor

@dbluhm dbluhm left a comment

Choose a reason for hiding this comment

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

This looks good! Nice work!

@dbluhm
Copy link
Contributor

dbluhm commented Dec 6, 2023

Those DIDExchange Manager issues might have been me 😅

@dbluhm dbluhm merged commit c677185 into openwallet-foundation:main Dec 6, 2023
9 checks passed
@usingtechnology
Copy link
Contributor Author

Those DIDExchange Manager issues might have been me 😅

Haha, no big deal, just makes me wonder about other little corners that haven't had issues arise yet. 😬

@usingtechnology usingtechnology deleted the issue_2650_problem_report branch December 7, 2023 15:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants