Coredump when rescanning imported seed on dev branch #76

Closed
opened 2 years ago by duke · 8 comments
duke commented 2 years ago
Owner

I am not sure this bug is actually caused by the dev branch, it could be that the SDL backend server it connected to is messed up. Either way, we should not coredump in this situation and that is a bug:


Core was generated by `./SilentDragonLite'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x000055d93f1908fb in Controller::shutdownhushd (this=0x0) at src/controller.cpp:1990
1990	    if (zrpc->haveConnection()) 
[Current thread is 1 (Thread 0x7f208474cdc0 (LWP 4526))]
(gdb) bt
#0  0x000055d93f1908fb in Controller::shutdownhushd() (this=0x0) at src/controller.cpp:1990
#1  0x000055d93f0994ea in MainWindow::closeEventpw(QCloseEvent*) (this=0x55d9447e3f90, event=0x0) at src/mainwindow.cpp:438
#2  0x000055d93f098de7 in MainWindow::doClosePw() (this=0x55d9447e3f90) at src/mainwindow.cpp:377
#3  0x000055d93f09bd1d in MainWindow::removeWalletEncryptionStartUp() (this=0x55d9447e3f90) at src/mainwindow.cpp:700
#4  0x000055d93f09789e in MainWindow::MainWindow(QWidget*) (this=0x55d9447e3f90, parent=0x0) at src/mainwindow.cpp:94
#5  0x000055d93f09412d in Application::main(int, char**) (this=0x7ffe20ab01b0, argc=1, argv=0x7ffe20ab02d8) at src/main.cpp:209
#6  0x000055d93f093362 in main(int, char**) (argc=1, argv=0x7ffe20ab02d8) at src/main.cpp:274

STDOUT:

operator() : restore wallet radio button clicked
validatePage : seed length= 24
Setting birthday to 500000
Setting Number to 10
litelib_process_response :  OK
litelib_process_response :  {
  "result": "success"
}
makeConnection
Connection
doAutoConnect : server= "https://devo.crabdance.com"  connection= Connection(0x55d9451c4e40)  me= 0x55d945084660 

doRPC :  "info"
closeEventpw : event= QEvent(this = 0x0)
Segmentation fault (core dumped)

This line caues the coredump:

1990	    if (zrpc->haveConnection()) 

and it looks like we need to check if zrpc != NULL before using -> on it

I am not sure this bug is actually caused by the dev branch, it could be that the SDL backend server it connected to is messed up. Either way, we should not coredump in this situation and that is a bug: ``` Core was generated by `./SilentDragonLite'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x000055d93f1908fb in Controller::shutdownhushd (this=0x0) at src/controller.cpp:1990 1990 if (zrpc->haveConnection()) [Current thread is 1 (Thread 0x7f208474cdc0 (LWP 4526))] (gdb) bt #0 0x000055d93f1908fb in Controller::shutdownhushd() (this=0x0) at src/controller.cpp:1990 #1 0x000055d93f0994ea in MainWindow::closeEventpw(QCloseEvent*) (this=0x55d9447e3f90, event=0x0) at src/mainwindow.cpp:438 #2 0x000055d93f098de7 in MainWindow::doClosePw() (this=0x55d9447e3f90) at src/mainwindow.cpp:377 #3 0x000055d93f09bd1d in MainWindow::removeWalletEncryptionStartUp() (this=0x55d9447e3f90) at src/mainwindow.cpp:700 #4 0x000055d93f09789e in MainWindow::MainWindow(QWidget*) (this=0x55d9447e3f90, parent=0x0) at src/mainwindow.cpp:94 #5 0x000055d93f09412d in Application::main(int, char**) (this=0x7ffe20ab01b0, argc=1, argv=0x7ffe20ab02d8) at src/main.cpp:209 #6 0x000055d93f093362 in main(int, char**) (argc=1, argv=0x7ffe20ab02d8) at src/main.cpp:274 ``` STDOUT: ``` operator() : restore wallet radio button clicked validatePage : seed length= 24 Setting birthday to 500000 Setting Number to 10 litelib_process_response : OK litelib_process_response : { "result": "success" } makeConnection Connection doAutoConnect : server= "https://devo.crabdance.com" connection= Connection(0x55d9451c4e40) me= 0x55d945084660 doRPC : "info" closeEventpw : event= QEvent(this = 0x0) Segmentation fault (core dumped) ``` This line caues the coredump: ``` 1990 if (zrpc->haveConnection()) ``` and it looks like we need to check if zrpc != NULL before using `->` on it
Poster
Owner

I just checked and devo.crabdance.com does seem to be messed up which is likely the cause of this coredump, not the dev branch code:

silentdragonlite-cli dev $ ./target/release/silentdragonlite-cli --server devo.crabdance.com
Error during startup:grpc-status: Unknown, grpc-message: "transport error: http2 error: protocol error: frame with invalid size"
If you repeatedly run into this issue, you might have to restore your wallet from your seed phrase.
I just checked and devo.crabdance.com does seem to be messed up which is likely the cause of this coredump, not the dev branch code: ``` silentdragonlite-cli dev $ ./target/release/silentdragonlite-cli --server devo.crabdance.com Error during startup:grpc-status: Unknown, grpc-message: "transport error: http2 error: protocol error: frame with invalid size" If you repeatedly run into this issue, you might have to restore your wallet from your seed phrase. ```
Poster
Owner

Latest dev branch attempts to avoid coredump and now prints this to STDOUT :

No zrpc object, unclean shutdown and unable to call saveWallet!

If you see the above printed to STDOUT, it's likely the coredump has been avoided. Needs some testing.

Latest dev branch attempts to avoid coredump and now prints this to STDOUT : No zrpc object, unclean shutdown and unable to call saveWallet! If you see the above printed to STDOUT, it's likely the coredump has been avoided. Needs some testing.
Collaborator

I just checked and devo.crabdance.com does seem to be messed up which is likely the cause of this coredump, not the dev branch code:

silentdragonlite-cli dev $ ./target/release/silentdragonlite-cli --server devo.crabdance.com
Error during startup:grpc-status: Unknown, grpc-message: "transport error: http2 error: protocol error: frame with invalid size"
If you repeatedly run into this issue, you might have to restore your wallet from your seed phrase.

Please try the following to see if you still have this error:

./target/release/silentdragonlite-cli --server https://devo.crabdance.com
> I just checked and devo.crabdance.com does seem to be messed up which is likely the cause of this coredump, not the dev branch code: > > ``` > silentdragonlite-cli dev $ ./target/release/silentdragonlite-cli --server devo.crabdance.com > Error during startup:grpc-status: Unknown, grpc-message: "transport error: http2 error: protocol error: frame with invalid size" > If you repeatedly run into this issue, you might have to restore your wallet from your seed phrase. > ``` Please try the following to see if you still have this error: ``` ./target/release/silentdragonlite-cli --server https://devo.crabdance.com ```
Poster
Owner

@jahway603 works now 👍

@jahway603 works now :+1:
Poster
Owner

I will leave this issue open for a bit so we can try to test the avoidance of a coredump

I will leave this issue open for a bit so we can try to test the avoidance of a coredump
Poster
Owner

What I am seeing is that rescanning from any block initially coredumps SDL, but then if/when a user tries to restart SDL, it correctly rescans from the block that was requested.

What I am seeing is that rescanning from any block initially coredumps SDL, but then if/when a user tries to restart SDL, it correctly rescans from the block that was requested.
Poster
Owner

On the current latest commit of the dev branch 42b5d1 I was able to import a seed and rescan from block 800k with no coredump. So it seems to at least sometimes work but there may be a race condition that sometimes causes a crash.

On the current latest commit of the `dev` branch 42b5d1 I was able to import a seed and rescan from block 800k with no coredump. So it seems to at least sometimes work but there may be a race condition that sometimes causes a crash.
duke changed title from Coredump when rescanning from block 500000 on dev branch to Coredump when rescanning imported seed on dev branch 2 years ago
Poster
Owner

Haven't seen this again, closing

Haven't seen this again, closing
duke closed this issue 2 years ago
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.