Bots werden gebannt

Started by markusmarkusz, April 16, 2016, 08:40:56 PM

Previous topic - Next topic

markusmarkusz

Guten Abend,

es ist mittlerweile bereits sehr oft vorgekommen, dass die Bots ausgetimed sind.
Meist war es dann so, dass dann, wenn der jeweilige Bot von selbst reconnecten will, es hieß, dass der Bot vllt. gebannt ist.
Dies ist aber nicht der Fall.
Wenn ich die Botinstanz per Hand neu starte, dann kann der Bot wieder problemlos connecten.
In manchen Fällen reconnected der Bot gar nicht erst automatisch.
Es timen auch nicht immer alle Bots aus.
Meist ist es dann so, dass zwei bis drei Bots austimen, gelegentlich reconnecten, dann wieder austimen....
Die anderen Bots, die nicht ausgetimed sind, bleiben dann auch einfach auf dem TS.
Der vServer auf dem die Bots laufen ist auf der Query-IP-Whitelist von dem TS3 Server und für den Query Login wird der serveradmin Account verwendet.
Bei allen Bots ist die Login-Log-Funktion aktiv, bot_slowmode ist aus, bot_check_interval ist auf 1 und bot_connect_forever auf 1.
Auf dem TeamSpeak 3 Server ist serverinstance_serverquery_flood_commands auf 500 und serverinstance_serverquery_flood_time auf 5 Sekunden.
Sollte also eig. doch passen, oder?
Manchmal passiert es dann, dass einer der Bots diese Meldung ausgibt:
2016-04-12 22:21:07 JTS3ServerMod CRITICAL Error while getting client list!
2016-04-12 22:21:07 JTS3ServerMod EXCEPTION java.lang.IllegalStateException: Closed TS3 Connection: java.net.SocketTimeoutException: Read timed out
2016-04-12 22:21:07 JTS3ServerMod INFO Unloaded all functions!

Folglich ist er dann auch aus.
Nach 65 Sekunden versucht er dann zu reconnecten. Betonung liegt bei versucht.
2016-04-12 22:23:28 JTS3ServerMod CRITICAL Unable to login as "serveradmin"! Maybe this IP address is banned for some minutes on that server!
2016-04-12 22:23:28 JTS3ServerMod EXCEPTION java.lang.IllegalStateException: Closed TS3 Connection: java.net.SocketTimeoutException: Read timed out

Danach meldet er, dass der Bot alle Funktionen deaktiviert hat und, dass er gestoppt wurde.
Dies war bei 4 von 6 Bots der Fall. Die anderen beiden sind gemütlich weiterhin aktiv gewesen.

Das das Restarten per Command geht und die anderen beiden Bots nicht ausgetimed sind, gehe ich davon aus, dass die IP nicht gebannt wurde.
Die Frage ist dann nur, was denn sonst der Grund sein könnte.
Vielleicht weißt es hier jemand besser :P.

Mit freundlichen Grüßen,
Markus

Stefan1200

Geht eine Firewall dazwischen? Fehlerhafter TS3 Server? Mal eine andere Java VM ausprobiert?

markusmarkusz

Der TS3 Server ist fehlerfrei. Er läuft auf einem Root-Server mit Debian 7 und ist auf der aktuellsten Version.
Die Bots werden auf einem vServer mit Debian 7 betrieben. Er lässt alle Verbindungen zwischen TS3 und den Bots zu.
Java:
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

Stefan1200

Den Bot startest du mit der -mx30M Zeile aus der Anleitung?

markusmarkusz

Den Arbeitsspeicher habe ich für Java/den Bot nicht begrenzt.
Die Bots können den kompletten Speicher nutzen.

Stefan1200

Quote from: markusmarkusz on April 17, 2016, 12:12:37 PM
Den Arbeitsspeicher habe ich für Java/den Bot nicht begrenzt.
Die Bots können den kompletten Speicher nutzen.

Und das bricht der Virtualisierungssoftware von vservern das genickt...
Ich schreibe das ja nicht ohne Grund in die readme. :)

markusmarkusz

Welchen maximalen Speicher würdest Du empfehlen?
Es laufen aktuell 6 Bots. Bei allen sind unterschiedliche Funktionen aktiv und jeder nutzt den Client Datenbank Cache.

Stefan1200

Quote from: markusmarkusz on April 17, 2016, 02:43:22 PM
Welchen maximalen Speicher würdest Du empfehlen?
Es laufen aktuell 6 Bots. Bei allen sind unterschiedliche Funktionen aktiv und jeder nutzt den Client Datenbank Cache.

Jede Virtualisierungssoftware hat andere Grenzwerte eingestellt, einfach ausprobieren und mit 30M anfangen. Ich habe mit keiner einzigen Virtualisierungssoftware davon Erfahrung, da ich immer nur echte dedicated Server hatte.

markusmarkusz

Mal sehen :3.
Ich probiere jetzt erstmal herum.

markusmarkusz

Erneut timen die Bots wieder aus.

2016-05-26 00:33:34 JTS3ServerMod CRITICAL Error while getting client list!
2016-05-26 00:33:34 JTS3ServerMod EXCEPTION java.lang.IllegalStateException: Closed TS3 Connection: java.net.SocketTimeoutException: Read timed out
2016-05-26 00:33:34 JTS3ServerMod INFO Unloaded all functions!

Die Bots sind nach 65 Sekunden reconnected. 2 Sekunden später kam dann wieder das:

2016-05-26 00:34:41 JTS3ServerMod INFO Creating client database cache...
2016-05-26 00:35:28 JTS3ServerMod CRITICAL Error while getting client list!
2016-05-26 00:35:28 JTS3ServerMod EXCEPTION java.lang.IllegalStateException: Closed TS3 Connection: java.net.SocketTimeoutException: Read timed out
2016-05-26 00:35:28 JTS3ServerMod INFO Unloaded all functions!

Dann sind die Bots wieder reconnected und dann ging alles.

Ich hatte die Bots bis zuletzt mit dem Argument -mx30M gestartet. Da es trotzdem vereinzelt zu Timeouts kam, habe ich den Wert auf 40M angepasst.
Trotzdem timen die Bots aus.
Empfiehlt es sich, weiterhin den Wert hochzusetzen, oder sollte ich irgendetwas anderes testen?

Stefan1200

Der Fehler
java.net.SocketTimeoutException: Read timed out
hat nichts mit dem zugewiesenen Arbeitsspeicher zu tun. Da würden dann andere Fehler kommen.

Der TS3 Server hat einfach nicht innerhalb von 40 Sekunden geantwortet, dann kommt es zum Read Timeout. Eventuell eine hohe Auslastung vom TS3 Server oder eine Firewall, die irgendwas blockiert.