-
Notifications
You must be signed in to change notification settings - Fork 203
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
Bug at startup where FireFly gives up creating listeners if cannot reach transaction manager #1532
Comments
I'm not convinced this is a full diagnosis here @EnriqueL8 If you have this level of detail worked out, I think logs of the success and failure cases would be helpful |
Note that I expect the testing, code changes and investigation of this one to overlap with the changes under discussion in #1531 |
Managed to replicate this one manually but unsure how this could occur at startup. To replicate it, you can simply delete the listener in the blockchain connector and then query the listener on the FireFly API under
I does make me think that if we do not find the listener in the connector at query time we should created it. If I delete the |
Thanks @EnriqueL8 - going to take another look my side to understand the code better. My naive reading of the code suggested that if I'd coupled that to the firefly/internal/contracts/manager.go Lines 797 to 802 in 16aec0b
|
Ok - so the thing I missed here is the So I don't think we have a concrete issue to investigate there currently |
As part of the startup flow of FireFly, it will reconcile the intent from its database and call the relevant plugins. For example, it will make sure to activate the toke pools (listen to token pool events) or make sure the contract listeners are created in the transaction manager layer. The latter is the source of this bug and the the listener will never be created against the transaction manager. The worst part is that is fails silently, only when you retrieve the listener then in the status you will see that it cannot find the listener in the blockchain connector as such:
This will cause FireFly to never listen to those events and not let the user know that an issue has occurred. It's a bug in the way the Contract Manager handles errors from the transaction manager
The text was updated successfully, but these errors were encountered: