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

[#1199] Non transient remote exceptions transport fix #1743

Merged
merged 16 commits into from May 12, 2021

Conversation

sandjelkovic
Copy link
Member

This PR will resolve #1199

Exception transiency property wasn't correctly sent or received during transportation between applications.

To be able to distinguish which type of exception was thrown at the handling side, the command/query sending side will deserialize the message and expose this information in the cause field of *ExecutionExceptions. To support this, a new exception RemoteNonTransientHandlingException has been created to indicate the non-transient nature of a remote exception.

The result is that the CommandExecutionException and QueryExecutionException will remain the same, but the retry callback and retry scheduler will be able to determine if a command should be retried based on the cause of CommandExecutionException

@sandjelkovic sandjelkovic added Type: Bug Use to signal issues that describe a bug within the system. Priority 3: Could Low priority. Issues that are nice to have but have a straightforward workaround. Status: In Progress Use to signal this issue is actively worked on. labels Mar 26, 2021
@sandjelkovic sandjelkovic self-assigned this Mar 26, 2021
@CLAassistant
Copy link

CLAassistant commented Mar 26, 2021

CLA assistant check
All committers have signed the CLA.

@sonarcloud
Copy link

sonarcloud bot commented Mar 27, 2021

Copy link
Member

@smcvb smcvb left a comment

Choose a reason for hiding this comment

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

Bunch of comments worth going through. Conceptually I have a good feeling about this addition though! Did you per chance also to a local form of integration test to validate retries occurred when using AxonServer/JGroups/SpringCloud to distribute the command bus?

@smcvb
Copy link
Member

smcvb commented Apr 8, 2021

Also, SonarCloud is complaining about some issues too. So please take a look at those too :-)

@smcvb smcvb added this to the Release 4.5.1 milestone Apr 8, 2021
sandjelkovic and others added 7 commits May 7, 2021 13:57
…er/connector/query/AxonServerNonTransientRemoteQueryHandlingException.java

Co-authored-by: Steven van Beelen <steven.vanbeelen@axoniq.io>
…er/connector/command/AxonServerNonTransientRemoteCommandHandlingException.java

Co-authored-by: Steven van Beelen <steven.vanbeelen@axoniq.io>
Co-authored-by: Steven van Beelen <steven.vanbeelen@axoniq.io>
Copy link
Member

@smcvb smcvb left a comment

Choose a reason for hiding this comment

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

Several smaller comments still, but I think we're getting there!

Copy link
Member

@smcvb smcvb left a comment

Choose a reason for hiding this comment

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

Believe that's it. Thanks for the effort @sandjelkovic! Let's wait for a second pair of eyes, to see if he/she comes up with the same conclusion :-)

@smcvb smcvb requested a review from m1l4n54v1c May 11, 2021 09:44
@sonarcloud
Copy link

sonarcloud bot commented May 11, 2021

Copy link
Member

@m1l4n54v1c m1l4n54v1c left a comment

Choose a reason for hiding this comment

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

LGTM

@smcvb
Copy link
Member

smcvb commented May 12, 2021

SonarCloud complains about the inheritance level of the Exceptions added in this PR.
For the time being, this is a known issue that has been drafted up for further work for later releases.
Adjusting this right now would impose breaking changes and hence the complaint by SonarCloud will not be adhered to at this stage.

@smcvb smcvb merged commit 1ac9b66 into master May 12, 2021
@smcvb smcvb deleted the bugfix/non-transient-remote-exceptions branch May 12, 2021 07:47
@smcvb smcvb added Status: Resolved Use to signal that work on this issue is done. and removed Status: In Progress Use to signal this issue is actively worked on. labels May 12, 2021
@smcvb smcvb changed the title Non transient remote exceptions transport fix [#1199] Non transient remote exceptions transport fix May 12, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Priority 3: Could Low priority. Issues that are nice to have but have a straightforward workaround. Status: Resolved Use to signal that work on this issue is done. Type: Bug Use to signal issues that describe a bug within the system.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

RetryScheduler incorrectly retries CommandExecutionException containg an AxonNonTransientException
5 participants