Closed gkc closed 2 years ago
@cconstab @cpswan @VJag @murali-shris @kalluriramkumar @nickelskevin Interested in any initial comments or thoughts you have on this
Marked this as P1 since we are seeing issues related to handling of connections in the secondary servers.
Right now server does not allow connections from a source if it is in the blocked list. However, it does not help us with preventing a DoS attack
code for this is in InboundConnectionManager
One way is to have a rate limit for the number of connections a single @sign can take
Or start with a *(everyone) for the blocked list and allow as we go with the rate limit
This still requires me to complete writing the end to end tests. 2SP for the remaining work.
Remaining work on this issue: Merge #583
Filed new issue #587 for additional work
Done, after a couple of follow-on PRs
Lead: @gkc
Describe the bug
_isIdle() || getMetaData().isClosed || getMetaData().isStale;
inboundIdleTimeMillis
has passed without activity. This currently defaults to 600000 i.e. 600 seconds i.e. 10 minutesExpected behavior Needs further analysis. Some initial thoughts:
inboundIdleTimeMillis
from its configured value down to an absolute minimum of, say, 1 secondAs we implement what is required for this and for #502, we will need to also invest in client-side handling of outbound connections. There is some discussion of what this looks like in #502 - basically it means if we are keeping outbound connections open from the clients, then we need to have graceful retries for when the server end has had to kill them
Additional context As the network of connections between atSigns grows, we need to have policies which will optimise for the "normal" number of inter-server connections but will gracefully handle much larger numbers