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

Call getPartyInfo before requestAllTransactionsFromNode in order to e… #459

Merged
merged 2 commits into from Sep 14, 2018
Merged

Call getPartyInfo before requestAllTransactionsFromNode in order to e… #459

merged 2 commits into from Sep 14, 2018

Conversation

nicolae-leonte-go
Copy link
Contributor

When the SyncPoller performs requestAllTransactionsFromNode it may happen that the target tessera node does not yet have the Recipient info for the requesting node.
In such cases the following exception is encountered (on the target tessera node):
09:02:38.709 [grizzly-http-server-13] ERROR c.q.t.a.e.KeyNotFoundExceptionMapper - com.quorum.tessera.key.exception.KeyNotFoundException: Recipient not found at com.quorum.tessera.node.PartyInfoServiceImpl.lambda$getURLFromRecipientKey$2(PartyInfoServiceImpl.java:68) ~[tessera-app-0.7-SNAPSHOT-app.jar:na] at java.util.Optional.orElseThrow(Optional.java:290) ~[na:1.8.0_172] at com.quorum.tessera.node.PartyInfoServiceImpl.getURLFromRecipientKey(PartyInfoServiceImpl.java:68) ~[tessera-app-0.7-SNAPSHOT-app.jar:na] at com.quorum.tessera.enclave.EnclaveImpl.publishPayload(EnclaveImpl.java:115) ~[tessera-app-0.7-SNAPSHOT-app.jar:na] at com.quorum.tessera.enclave.EnclaveImpl.lambda$null$1(EnclaveImpl.java:150) ~[tessera-app-0.7-SNAPSHOT-app.jar:na] at java.util.ArrayList.forEach(ArrayList.java:1257) ~[na:1.8.0_172] at java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1080) ~[na:1.8.0_172] at com.quorum.tessera.enclave.EnclaveImpl.lambda$resendAll$2(EnclaveImpl.java:149) ~[tessera-app-0.7-SNAPSHOT-app.jar:na] at java.util.ArrayList.forEach(ArrayList.java:1257) ~[na:1.8.0_172] at com.quorum.tessera.enclave.EnclaveImpl.resendAll(EnclaveImpl.java:148) ~[tessera-app-0.7-SNAPSHOT-app.jar:na] at com.quorum.tessera.api.TransactionResource.resend(TransactionResource.java:265) ~[tessera-app-0.7-SNAPSHOT-app.jar:na]

In order to ensure that the target tessera has the requesting node info the SyncPoller was updated to call getPartyInfo before any requestAllTransactionsFromNode.

…nsure that the target tessera node has the current node URL.
@Krish1979 Krish1979 merged commit 84aad47 into Consensys:master Sep 14, 2018
@Krish1979 Krish1979 deleted the feature/SyncPollerUpdatesPartyInfo branch September 14, 2018 21:16
@prd-fox prd-fox added bug Something isn't working 0.7 labels Oct 17, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0.7 bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants