Projects tigase _server server-core Issues #1273
Add option to limit number of concurrently connected resources (#1273)
Wojciech Kapcia (Tigase) opened 4 years ago

(outcome of #systems-98).

Under normal circumstances users shouldn't need more than, let's say, 10 concurrent connections.

  • Andrzej Wójcik (Tigase) commented 4 years ago

    @wojtek Looking at SM code, I wonder if we should not remove or decrease 30 in this line https://github.com/tigase/tigase-server/blob/daf6d51dda9e3f9ee2e00dceb8cc4f375c60e8be/src/main/java/tigase/server/xmppclient/StreamManagementIOProcessor.java#L648 as it forces check for timeout on outgoing message queue only if message is greater than 30. This could cause big (up to 30 packets) queues which should timeout already on next outgoing stanza.

    What do you think?

  • Andrzej Wójcik (Tigase) commented 4 years ago

    I've implemented this feature in issue #1273 branch in tigase-server and tigase-acs. Please review.

  • Wojciech Kapcia (Tigase) commented 4 years ago

    Relevant PR:

    Looking at SM code, I wonder if we should not remove or decrease 30 in this line

    I think we could try removing it - for a lot of "busy" users with many connections but not so many packets this could lead to lots of stale queues...

  • Andrzej Wójcik (Tigase) commented 4 years ago

    Changes were applied.

  • Wojciech Kapcia (Tigase) commented 4 years ago

    Merged. tigase.im configured:

    'sess-man' {
        'user-connections-limit' = 5
    }
  • Wojciech Kapcia (Tigase) commented 4 years ago
  • Wojciech Kapcia (Tigase) commented 4 years ago

    Issue fixed

  • Wojciech Kapcia (Tigase) commented 4 years ago
    [2021-09-01 18:33:48:435] [SEVERE  ] [urn:ietf:params:xml:ns:xmpp-bind-proc-0 ] WorkerThread.run(): tigase.server.xmppsession.SessionManager$ProcessorWorkerThread,(urn:ietf:params:xml:ns:xmpp-bind-proc-0) Exception during packet processing: Packet=from=c2s@ip-172-31-0-99.us-west-2.compute.internal/172.19.0.2_5222_46.32.66.157_57850, to=sess-man@ip-172-31-0-99.us-west-2.compute.internal, serverAuthorisedStanzaFrom=Optional[...@sure.im], DATA=<iq type="set" id="D94D114D-D211-4A39-9DB4-3657A42C8C12" xmlns="jabber:client" from="...@sure.im"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><resource>iPhone ...</resource></bind></iq>, SIZE=204, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=AUTH, TYPE=set, STABLE_ID=2459fb31-766c-4ff6-bd71-e8339918c822, connection=XMPPResourceConnection=[user_jid=...@sure.im/iPhone ..., packets=3, connectioId=c2s@ip-172-31-0-99.us-west-2.compute.internal/172.19.0.2_5222_46.32.66.157_57850, domain=sure.im, authState=AUTHORIZED, isAnon=false, isTmp=false, parentSession hash=1726458013, parentSession liveTime=805]
    java.lang.NullPointerException
    	at tigase.server.cluster.strategy.OnlineUsersCachingStrategy.getConnectionRecordsByCreationTime(SourceFile:326)
    	at tigase.cluster.SessionManagerClustered.checkSingleUserConnectionsLimit(SessionManagerClustered.java:191)
    	at tigase.server.xmppsession.SessionManager.handleResourceBind(SessionManager.java:407)
    	at tigase.cluster.SessionManagerClustered.handleResourceBind(SessionManagerClustered.java:180)
    	at tigase.xmpp.XMPPResourceConnection.setResource(XMPPResourceConnection.java:532)
    	at tigase.xmpp.impl.BindResource.process(BindResource.java:207)
    	at tigase.server.xmppsession.SessionManager$ProcessorWorkerThread.process(SessionManager.java:2685)
    	at tigase.util.processing.WorkerThread.run(WorkerThread.java:67)
    
  • Wojciech Kapcia (Tigase) commented 4 years ago

    @andrzej.wojcik as per our discussion I adjusted the check of the package age: https://github.com/tigase/tigase-server/commit/3f242016e14c1edfa97b55142987ebffd603c5fb -- should be OK I think.

issue 1 of 1
Type
Task
Priority
Normal
Assignee
Version
tigase-server-8.2.0
Spent time
0
Issue Votes (0)
Watchers (0)
Reference
tigase/_server/server-core#1273
Please wait...
Page is in error, reload to recover