-
Notifications
You must be signed in to change notification settings - Fork 378
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
Node crashes on quick restart after being killed #2838
Comments
Maybe this was fixed by #2671 |
@hackaugusto Unfortunately not, this was with latest master as of yesterday evening (e0f3e6f) which already includes that PR. |
Ahhh, I think I know what is the problem:
raiden/raiden/utils/filters.py Line 111 in 97820b6
|
The race happened under this circunstance: - A node learns about a new block, updates its state, then crashes - On restart, the block number is recovered, the filters are installed with the latest known block. - The race: The node finishes the above before a new block is mined - The bug: The filter is polled during start of the RaidenService, by calling the AlarmTask.first_run, which always executes the callbacks, eventually using the StateFilter's to poll for new events from a block in the future. The fix was to give the latest known block number to the alarm task in the as an argument for first_run, and only execute the callbacks if there is a new block. fixes raiden-network#2838
The race happened under this circunstance: - A node learns about a new block, updates its state, then crashes - On restart, the block number is recovered, the filters are installed with the latest known block. - The race: The node finishes the above before a new block is mined - The bug: The filter is polled during start of the RaidenService, by calling the AlarmTask.first_run, which always executes the callbacks, eventually using the StateFilter's to poll for new events from a block in the future. The fix was to give the latest known block number to the alarm task in the as an argument for first_run, and only execute the callbacks if there is a new block. fixes raiden-network#2838
As discussed in Rocketchat this should no longer be happening after #2895 which now updates the block state only with confirmed blocks. |
The race happened under this circunstance: - A node learns about a new block, updates its state, then crashes - On restart, the block number is recovered, the filters are installed with the latest known block. - The race: The node finishes the above before a new block is mined - The bug: The filter is polled during start of the RaidenService, by calling the AlarmTask.first_run, which always executes the callbacks, eventually using the StateFilter's to poll for new events from a block in the future. The fix was to give the latest known block number to the alarm task in the as an argument for first_run, and only execute the callbacks if there is a new block. fixes raiden-network#2838
The race happened under this circunstance: - A node learns about a new block, updates its state, then crashes - On restart, the block number is recovered, the filters are installed with the latest known block. - The race: The node finishes the above before a new block is mined - The bug: The filter is polled during start of the RaidenService, by calling the AlarmTask.first_run, which always executes the callbacks, eventually using the StateFilter's to poll for new events from a block in the future. The fix was to give the latest known block number to the alarm task in the as an argument for first_run, and only execute the callbacks if there is a new block. fixes #2838
The race happened under this circunstance: - A node learns about a new block, updates its state, then crashes - On restart, the block number is recovered, the filters are installed with the latest known block. - The race: The node finishes the above before a new block is mined - The bug: The filter is polled during start of the RaidenService, by calling the AlarmTask.first_run, which always executes the callbacks, eventually using the StateFilter's to poll for new events from a block in the future. The fix was to give the latest known block number to the alarm task in the as an argument for first_run, and only execute the callbacks if there is a new block. fixes raiden-network#2838
The race happened under this circunstance: - A node learns about a new block, updates its state, then crashes - On restart, the block number is recovered, the filters are installed with the latest known block. - The race: The node finishes the above before a new block is mined - The bug: The filter is polled during start of the RaidenService, by calling the AlarmTask.first_run, which always executes the callbacks, eventually using the StateFilter's to poll for new events from a block in the future. The fix was to give the latest known block number to the alarm task in the as an argument for first_run, and only execute the callbacks if there is a new block. fixes raiden-network#2838
The race happened under this circunstance: - A node learns about a new block, updates its state, then crashes - On restart, the block number is recovered, the filters are installed with the latest known block. - The race: The node finishes the above before a new block is mined - The bug: The filter is polled during start of the RaidenService, by calling the AlarmTask.first_run, which always executes the callbacks, eventually using the StateFilter's to poll for new events from a block in the future. The fix was to give the latest known block number to the alarm task in the as an argument for first_run, and only execute the callbacks if there is a new block. fixes raiden-network#2838
The race happened under this circunstance: - A node learns about a new block, updates its state, then crashes - On restart, the block number is recovered, the filters are installed with the latest known block. - The race: The node finishes the above before a new block is mined - The bug: The filter is polled during start of the RaidenService, by calling the AlarmTask.first_run, which always executes the callbacks, eventually using the StateFilter's to poll for new events from a block in the future. The fix was to give the latest known block number to the alarm task in the as an argument for first_run, and only execute the callbacks if there is a new block. fixes raiden-network#2838
The race happened under this circunstance: - A node learns about a new block, updates its state, then crashes - On restart, the block number is recovered, the filters are installed with the latest known block. - The race: The node finishes the above before a new block is mined - The bug: The filter is polled during start of the RaidenService, by calling the AlarmTask.first_run, which always executes the callbacks, eventually using the StateFilter's to poll for new events from a block in the future. The fix was to give the latest known block number to the alarm task in the as an argument for first_run, and only execute the callbacks if there is a new block. fixes raiden-network#2838
The race happened under this circunstance: - A node learns about a new block, updates its state, then crashes - On restart, the block number is recovered, the filters are installed with the latest known block. - The race: The node finishes the above before a new block is mined - The bug: The filter is polled during start of the RaidenService, by calling the AlarmTask.first_run, which always executes the callbacks, eventually using the StateFilter's to poll for new events from a block in the future. The fix was to give the latest known block number to the alarm task in the as an argument for first_run, and only execute the callbacks if there is a new block. fixes raiden-network#2838
The race happened under this circunstance: - A node learns about a new block, updates its state, then crashes - On restart, the block number is recovered, the filters are installed with the latest known block. - The race: The node finishes the above before a new block is mined - The bug: The filter is polled during start of the RaidenService, by calling the AlarmTask.first_run, which always executes the callbacks, eventually using the StateFilter's to poll for new events from a block in the future. The fix was to give the latest known block number to the alarm task in the as an argument for first_run, and only execute the callbacks if there is a new block. fixes raiden-network#2838
The race happened under this circunstance: - A node learns about a new block, updates its state, then crashes - On restart, the block number is recovered, the filters are installed with the latest known block. - The race: The node finishes the above before a new block is mined - The bug: The filter is polled during start of the RaidenService, by calling the AlarmTask.first_run, which always executes the callbacks, eventually using the StateFilter's to poll for new events from a block in the future. The fix was to give the latest known block number to the alarm task in the as an argument for first_run, and only execute the callbacks if there is a new block. fixes raiden-network#2838
The race happened under this circunstance: - A node learns about a new block, updates its state, then crashes - On restart, the block number is recovered, the filters are installed with the latest known block. - The race: The node finishes the above before a new block is mined - The bug: The filter is polled during start of the RaidenService, by calling the AlarmTask.first_run, which always executes the callbacks, eventually using the StateFilter's to poll for new events from a block in the future. The fix was to give the latest known block number to the alarm task in the as an argument for first_run, and only execute the callbacks if there is a new block. fixes raiden-network#2838
The race happened under this circunstance: - A node learns about a new block, updates its state, then crashes - On restart, the block number is recovered, the filters are installed with the latest known block. - The race: The node finishes the above before a new block is mined - The bug: The filter is polled during start of the RaidenService, by calling the AlarmTask.first_run, which always executes the callbacks, eventually using the StateFilter's to poll for new events from a block in the future. The fix was to give the latest known block number to the alarm task in the as an argument for first_run, and only execute the callbacks if there is a new block. fixes raiden-network#2838
The race happened under this circunstance: - A node learns about a new block, updates its state, then crashes - On restart, the block number is recovered, the filters are installed with the latest known block. - The race: The node finishes the above before a new block is mined - The bug: The filter is polled during start of the RaidenService, by calling the AlarmTask.first_run, which always executes the callbacks, eventually using the StateFilter's to poll for new events from a block in the future. The fix was to give the latest known block number to the alarm task in the as an argument for first_run, and only execute the callbacks if there is a new block. fixes raiden-network#2838
The race happened under this circunstance: - A node learns about a new block, updates its state, then crashes - On restart, the block number is recovered, the filters are installed with the latest known block. - The race: The node finishes the above before a new block is mined - The bug: The filter is polled during start of the RaidenService, by calling the AlarmTask.first_run, which always executes the callbacks, eventually using the StateFilter's to poll for new events from a block in the future. The fix was to give the latest known block number to the alarm task in the as an argument for first_run, and only execute the callbacks if there is a new block. fixes raiden-network#2838
The race happened under this circunstance: - A node learns about a new block, updates its state, then crashes - On restart, the block number is recovered, the filters are installed with the latest known block. - The race: The node finishes the above before a new block is mined - The bug: The filter is polled during start of the RaidenService, by calling the AlarmTask.first_run, which always executes the callbacks, eventually using the StateFilter's to poll for new events from a block in the future. The fix was to give the latest known block number to the alarm task in the as an argument for first_run, and only execute the callbacks if there is a new block. fixes raiden-network#2838
The race happened under this circunstance: - A node learns about a new block, updates its state, then crashes - On restart, the block number is recovered, the filters are installed with the latest known block. - The race: The node finishes the above before a new block is mined - The bug: The filter is polled during start of the RaidenService, by calling the AlarmTask.first_run, which always executes the callbacks, eventually using the StateFilter's to poll for new events from a block in the future. The fix was to give the latest known block number to the alarm task in the as an argument for first_run, and only execute the callbacks if there is a new block. fixes raiden-network#2838
The race happened under this circunstance: - A node learns about a new block, updates its state, then crashes - On restart, the block number is recovered, the filters are installed with the latest known block. - The race: The node finishes the above before a new block is mined - The bug: The filter is polled during start of the RaidenService, by calling the AlarmTask.first_run, which always executes the callbacks, eventually using the StateFilter's to poll for new events from a block in the future. The fix was to give the latest known block number to the alarm task in the as an argument for first_run, and only execute the callbacks if there is a new block. fixes raiden-network#2838
The race happened under this circunstance: - A node learns about a new block, updates its state, then crashes - On restart, the block number is recovered, the filters are installed with the latest known block. - The race: The node finishes the above before a new block is mined - The bug: The filter is polled during start of the RaidenService, by calling the AlarmTask.first_run, which always executes the callbacks, eventually using the StateFilter's to poll for new events from a block in the future. The fix was to give the latest known block number to the alarm task in the as an argument for first_run, and only execute the callbacks if there is a new block. fixes raiden-network#2838
The race happened under this circunstance: - A node learns about a new block, updates its state, then crashes - On restart, the block number is recovered, the filters are installed with the latest known block. - The race: The node finishes the above before a new block is mined - The bug: The filter is polled during start of the RaidenService, by calling the AlarmTask.first_run, which always executes the callbacks, eventually using the StateFilter's to poll for new events from a block in the future. The fix was to give the latest known block number to the alarm task in the as an argument for first_run, and only execute the callbacks if there is a new block. fixes raiden-network#2838
The race happened under this circunstance: - A node learns about a new block, updates its state, then crashes - On restart, the block number is recovered, the filters are installed with the latest known block. - The race: The node finishes the above before a new block is mined - The bug: The filter is polled during start of the RaidenService, by calling the AlarmTask.first_run, which always executes the callbacks, eventually using the StateFilter's to poll for new events from a block in the future. The fix was to give the latest known block number to the alarm task in the as an argument for first_run, and only execute the callbacks if there is a new block. fixes raiden-network#2838
Problem Definition
(This may be parity related, haven't tested with Geth yet.)
Steps to reproduce:
The node crashes with a ValueError from within web3:
Full logs
As you can see the
data
attribute in the error is increasing and seems to be a block number.0x8b2045
->9.117.765
0x8b2047
->9.117.767
0x8b2048
->9.117.768
This error persists for a while but disappears after a few minutes.
The text was updated successfully, but these errors were encountered: