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

HTTP errors are not being commited since version 1.5.3 #2306

Open
tmpolaczyk opened this issue Nov 15, 2022 · 4 comments · Fixed by #2307
Open

HTTP errors are not being commited since version 1.5.3 #2306

tmpolaczyk opened this issue Nov 15, 2022 · 4 comments · Fixed by #2307

Comments

@tmpolaczyk
Copy link
Contributor

tmpolaczyk commented Nov 15, 2022

Starting from the 1.5.3 release, when a node encounters an HTTP error or a timeout in one of the sources of a data request, it will not commit any value at all.

Run a git bisect and e33986d is the first bad commit.

Besides, one single failing source would make the node to infer that the whole data request failed and, again, the node would refrain from committing any value or error at all. This is something that was presumably fixed before 1.5.3.

@tmpolaczyk
Copy link
Contributor Author

The affected nodes show this log line:

log::error!("Couldn't resolve rad request {}: {}", dr_pointer, e);

which means that the ResolveRA message returns an Err. So we need to ensure that the ResolveRA handler only returns an Err when we want the node to refrain from committing any value at all.

@aesedepece
Copy link
Member

@tmpolaczyk nice catch. Very interested about what could be the actual consequences of this, specially its impact on resolution of data requests, and reputation / collateral slashing.

@tmpolaczyk
Copy link
Contributor Author

@aesedepece when a data source returns an http error, nodes running on 1.5.3 or 1.5.4 will not participate in the resolution of that data request. So we should see an "Insufficient commits" error in mainnet. But instead we see the "http error", even when it shouldn't be the result (in case of 1 error and 4 non-error sources). So we believe that there are some nodes running modified versions of the node, and they are the ones participating in these requests.

@guidiaz
Copy link
Contributor

guidiaz commented Nov 17, 2022

@aesedepece @tmpolaczyk What if we let nodes refrain from committing errors only if majority of errors correspond to either http/401 (unauthorized) or http/403 (forbidden) ??

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants