-
Notifications
You must be signed in to change notification settings - Fork 52
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
Channel is not unlocked after processing payment #553
Comments
|
No
Yes, it is I need to do each time to make application working again.
First time I saw this issue in log on Sept 27 at 04:48:49,077 GMT. Since that time it happened three times AFAIK. |
#507 , we need to get to this soon , been pending a while now |
@vsbogd , can you also point me to client code ,might have more leads on possibly simulating the error |
Client code is here: https://github.com/vsbogd/sound-spleeter-proxy (README.md explains how to run it), but it happens once per 8000 client requests so I don't think it is easily reproducible. I think it is more simple to find the root cause by code analysis and then one could write a unit test to reproduce the behavior. Line 98 in fa1eab0
First issue is that error is not logged nor imprinted into returned error, so we don't have enough information to understand what happened. I would fix it first. There are two places inside Lines 36 to 58 in fa1eab0
Taking into account the lock actually happens the most suspicious is CompareAndSwap call which is essentially ExecuteTransaction call:snet-daemon/etcddb/etcddb_client.go Lines 296 to 325 in fa1eab0
Judging by "Transaction took" in log we can say snet-daemon/etcddb/etcddb_client.go Lines 329 to 385 in fa1eab0
As transaction looks safe I would suppose that transaction was sent to ETCD server and received by server but response was not received because of timeout. Looks like ETCD finished transaction but client received timeout error and it led to the inconsistency. What do you think? Does ETCD logs for this moment of time contains something interesting? |
Btw, I am not sure about priority of this. Are we going to completely decommission escrow payment transactions and they are already deprecated? If so may be we can simply migrate code to the tokens approach and finish the decommission. I cannot say when it will be possible though because we don't have resources to for doing this work. |
to me this is a production issue , and i dont want any body to have to do a manual workaround
We can try simulating with a test case as suggested and deep dive, will post anything seen on etcd |
added better logging on to debug the channel lock issue
added better logging on to debug the channel lock issue
more debug statements to resolve channel lock
Use License ID to track license as this will be used to upgrade / downgrade and keep track of any Audit trail
This issue started happening frequently on sound-spleeter service instance. It happens about two times per week.
In client logs one can see that client first receives "cannot get mutex for channel: {ID: 14}" error. And after this client receives "another transaction on channel: {ID: 14} is in progress".
In server logs one can see "rpc error: code = Internal desc = cannot get mutex for channel: {ID: 14}" before payment completed.
Daemon version:
One can see client and server logs below:
Client log:
Server log:
The text was updated successfully, but these errors were encountered: