-
Notifications
You must be signed in to change notification settings - Fork 153
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
dwallet RPC connection to daemon time out and doesn't reconnect #210
Comments
same thing here. "dcrctl --wallet getinfo" would return: "dcrctl --wallet stop" would log/print shutdown messages and stop it listening for RPC, but the process would not finish. I had to "kill" it manually. |
In the future, if you get a hang like this run
That will give us a stack trace to follow up on. |
Ah, yes, that was the same message! I forgot to get a trace because I was in a hurry. But it was something caused be the daemon, since both wallets that were connected hung up. I'll check the daemon log at that time. |
I have recorded the dcrd log, but it was not on -d debug, so there is'nt much information, just:
|
@cjepson i tried this killall -SIGABRT, but the wallet just quit, no stack trace. |
You might consider tmux, with the logging plugin. https://github.com/tmux-plugins/tmux-logging. |
@chappjc tmux suggestion is a very good one. I basically never run dcrd/wallet (or btcd) not in a tmux window. An alternative to that logging plugin (which I hadn't seen before) is to just define a shortcut to tell tmux to write the scrollback to a file. In my ~/.tmux.conf I have the following line:
That way s (after whatever the key you have for normal tmux commands) will save the scrollback to the file ~/tmp/tmux.log |
@jcvevernaleo with the plugin, you can start and stop logging (unique file each time) with |
Oops, didn't mean to close... working on my phone. :) git clone https://github.com/tmux-plugins/tmux-logging ~/clone/path Add to end of .tmux.conf: run-shell ~/clone/path/logging.tmux |
I got a stacktrace with SIGABRT. i couldn't figure out how to attach it here, so i put it here: http://pastebin.com/ZGErbbaW |
@girino In your case it looks like it sends to a channel (the chainntfns channel) when the channel isn't handling ntfns after "Timeout waiting for session RPC".
https://github.com/decred/dcrwallet/blob/master/chain/chain.go#L388-L392 The lock up might be because the channel is unbuffered and handling stops when the RPC server fails to connect, then the channel overflows and gridlocks. Maybe @jrick can shed some light on this issue.
|
Perhaps it could have a timeout with a select statement and |
Yes. Look at all of the other |
@alexlyp this isn't fixed yet (although a hang discovered by it was). The real fix is to make the dcrd json-rpc server process websocket requests asynchronously. Although, this is more of a dcrd issue than a dcrwallet one, so don't feel the need to reopen it. I have a btcd issue and PR for this, and we can create a dcrd issue for it as well if we want to keep track of it. |
15:39:13 2016-04-25 [INF] WLLT: Connecting block 0000000023709697effd8bd72a0723fac6269e1a9f54d5c062443616b0b235d4, height 61831
15:42:13 2016-04-25 [ERR] CHNS: Timeout waiting for session RPC
2 wallets on the same machine connected to the same dcrd (testne) have been hung for 2+ hours for no clear reason. The daemon is still running. dcrwallet doesn't want to retry the connection.
Restarding dcrd did not bring either dcrwallet back to life. CTRL+C on the wallets hang with:
[WRN] DCRW: Stopping legacy RPC server...
[INF] RPCS: Disconnected websocket client .............:58763
The text was updated successfully, but these errors were encountered: