Comments (6)
We are looking at addressing the core cause of the messages and demote to debug if needed, rather than rate limit. I'll be using this issue to collect "problem" messages.
from casper-node.
BlockAcquisition and BlockSyncronizer seem to be the most chatty.
We have a strand count down of validators that is not useful:
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (100 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (95 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (90 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (85 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (80 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (75 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (70 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (65 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (60 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (55 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (50 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (45 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (40 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (35 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (30 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (25 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (20 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (15 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (10 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (5 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (80 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (79 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (78 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (77 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (76 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (75 validators) with 5 peers
BlockSynchronizer: need next for block hash d4f3..9fbf: finality signatures at era 12531 (74 validators) with 5 peers
from casper-node.
Tons of BlockAcquisition: registering finality signature for: block hash b8c1..55d3
per block. Unneeded.
from casper-node.
Is this logging once per peer of the 5 for each deploy?
BlockSynchronizer: need next for block hash 8e78..de1f: deploy deploy-id(deploy-hash(e66e..5567), approvals-hash(a023..bb2f)) with 5 peers
BlockAcquisition: registering deploy for: block hash 8e78..de1f
BlockAcquisition: registering deploy for: block hash 8e78..de1f
BlockAcquisition: registering deploy for: block hash 8e78..de1f
BlockAcquisition: registering deploy for: block hash 8e78..de1f
BlockAcquisition: registering deploy for: block hash 8e78..de1f
from casper-node.
Break down of a day of logs with top counts. Eliminating the first 2 would kill a million needless log lines. Possibly killing the third as well.
783032 BlockAcquisition: registering finality signa
239298 BlockSynchronizer: need next for block hash
35328 BlockAcquisition: registering deploy for: bl
10186 outgoing connection failed
8249 new incoming connection established
8247 regular connection closing
7931 new outgoing connection established
from casper-node.
We will clean up the logs. The high-frequency log messages usually fall into three categories:
- Verbose message that are bounded, but plentiful: These should usually be debug message. An example is logging every deploy received on a blog, while this is theoretically bounded by the number of blocks "finite" is not enough in this case. Our policy is to use discretion, but usually NOT leave them at info or higher.
- Messages that can be triggered by external parties. An example is sending invalid data. These should always be handled quietly (i.e. debug or lower) for security reasons (i.e. don't make the log spammable), if they are left at a higher level, this is a bug.
- The third category is the same, the previous, except the operator needs to see them, since a clean mitigation of spam is not possible (e.g. a resource is being exhausted due to it). Typically our choice then is to either create a metric to make these visible, or rate limit the logging.
For the third category, we are currently considering some rate limiting, in the past, we have always added metrics instead.
We will be looking the log messages mentioned in this thread in the coming days and will likely have a solution for the juliet release. In the meantime, specific components can have their log level set individually through RUST_LOG
as a workaround.
The systemd rate limiting is something that could be added as an additional measure, however it would need frequent changes, or at least different settings based on whether a node is on testnet, mainnet or internal networks, all which have different logging requirements.
from casper-node.
Related Issues (20)
- Investigate the flaky test - "should_fetch_from_multiple_peers"
- Add mechanism to increase efficiency of reconnection process after upgrade
- Update Condor (2.0) Changelogs
- Change casper-node logs from RPC/binary-port to INFO if they return errors to users
- Bug report: The state_get_entity response does not include a method to retrieve the named keys of an addressable entity. HOT 1
- Write reactor payment tests for contracts that pay for themselves
- Modify the addressable entity RPC endpoint to return an aggregate response containing named keys and entry points
- Examine possibility of dropping vergen as a build dependency
- KeepUp Node panics at switch block with load HOT 3
- Emergency Upgrade - Network stalls. HOT 2
- Sidecar and Casper Node Connectivity Error due to version HOT 3
- Failed to start network with Mainnet DB snapshot HOT 1
- Investigate issues with generating a global state update file from a mainnet snapshot
- Handle tracking copy cache when querying for GS values by a key prefix
- Update nightly pipeline for Condor 2.0
- Add RPC endpoint to return rewards for a specific validator or a specific delegator for a specific era HOT 1
- Alter reward distribution logic to take account of prior eras' delegator identities and weights
- Casper 2.0 - LmdbWasmTestBuilder filesizes and test threads HOT 1
- Assess main reactor rewards tests to take care of introduction of validator credit
- Create a GitHub template to organise Condor release feedback/issues.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from casper-node.