[Problem] JTS3ServerMod - TS3 Server Bot

Started by SINE, September 06, 2014, 09:37:55 PM

Previous topic - Next topic

SINE

Version 5.2.4:

Die ChannelNotify Funktion scheint seit einigen Tagen nicht mehr richtig funktionieren zu wollen.
Wenn eine der dem Administrator zu meldenden Servergruppen den Channel betritt, bekommt diejenige Person ordnungsgemäß eine Nachricht, dass so und so viele Admins angeschrieben wurden (Zahl ist korrekt). Allerdings kommt keine Meldung bei auch nur einem der Admins an.

Die Funktion geht wieder, wenn man den Prozess des Bots neustartet, deswegen scheint mir eine Fehlkonfiguration unwahrscheinlich.
Zumal die Konfiguration über lange Zeit funktionierte.

Ich habe zudem eine Fehlermeldung in der Konsole entdeckt, die sich auf die Botinstanz bezieht, welche als einzige die ChannelNotify Funktion erfüllt:
Quotebot3: java.lang.NumberFormatException: null

Stefan1200

Ich brauche den Stacktrace aus der Logdatei (oder gleich die ganze Logdatei seit dem letzten Start vom Bot). Eventuell brauche ich auch noch die Channel Notify Einstellungen.

SINE

#2
Hi und Danke für die schnelle Antwort, hier die angefragten Infos:
Quote2014-09-06 08:00:11   START_MOD   Virtual bot instance "bot3" starts now
2014-09-06 08:00:11   LOAD_FUNCTIONS   Successfully loaded function: ChannelNotify / support_<zensiert>
2014-09-06 08:00:11   LOAD_FUNCTIONS   Successfully loaded function: ChannelNotify / support_<zensiert>
2014-09-06 08:00:11   LOAD_FUNCTIONS   Successfully loaded function: ChannelNotify / support_<zensiert>
2014-09-06 08:00:12   START_INFO   Successful connected to 127.0.0.1!
2014-09-06 08:00:12   START_INFO   Login as "<zensiert>" successful!
2014-09-06 08:00:12   START_INFO   Successful selected virtual server 1!
2014-09-06 08:00:12   CHANNELNOTIFY_MODE   Watching for new clients in channel "<zensiert>" (id: 1594), sending message to all online clients of server group ids: 135
2014-09-06 08:00:12   CHANNELNOTIFY_MODE   Watching for new clients in channel "<zensiert>" (id: 1435), sending message to all online clients of server group ids: 87, 90
2014-09-06 08:00:12   CHANNELNOTIFY_MODE   Watching for new clients in channel " <zensiert>" (id: 2796), sending message to all online clients of server group ids: 154, 155
2014-09-06 08:00:12   START_SUCCESSFUL   Bot started and connected successful, write !botinfo in server chat to get an answer!
2014-09-06 11:52:48   bot3: EXCEPTION - Bot Version: 5.2.4 Final (29.06.2014)
java.lang.NumberFormatException: null
   at java.lang.Integer.parseInt(Unknown Source)
   at java.lang.Integer.parseInt(Unknown Source)
   at de.stefan1200.jts3servermod.functions.ChannelNotify.handleClientEvents(ChannelNotify.java:272)
   at de.stefan1200.jts3servermod.JTS3ServerMod.teamspeakActionPerformed(JTS3ServerMod.java:2245)
   at de.stefan1200.jts3serverquery.JTS3ServerQuery$2.run(JTS3ServerQuery.java:2172)
   at java.lang.Thread.run(Unknown Source)
2014-09-06 17:13:16   bot3: EXCEPTION - Bot Version: 5.2.4 Final (29.06.2014)
java.lang.NumberFormatException: null
   at java.lang.Integer.parseInt(Unknown Source)
   at java.lang.Integer.parseInt(Unknown Source)
   at de.stefan1200.jts3servermod.functions.ChannelNotify.handleClientEvents(ChannelNotify.java:272)
   at de.stefan1200.jts3servermod.JTS3ServerMod.teamspeakActionPerformed(JTS3ServerMod.java:2245)
   at de.stefan1200.jts3serverquery.JTS3ServerQuery$2.run(JTS3ServerQuery.java:2172)
   at java.lang.Thread.run(Unknown Source)
2014-09-06 19:27:18   bot3: EXCEPTION - Bot Version: 5.2.4 Final (29.06.2014)
java.lang.NumberFormatException: null
   at java.lang.Integer.parseInt(Unknown Source)
   at java.lang.Integer.parseInt(Unknown Source)
   at de.stefan1200.jts3servermod.functions.ChannelNotify.handleClientEvents(ChannelNotify.java:272)
   at de.stefan1200.jts3servermod.JTS3ServerMod.teamspeakActionPerformed(JTS3ServerMod.java:2245)
   at de.stefan1200.jts3serverquery.JTS3ServerQuery$2.run(JTS3ServerQuery.java:2172)
   at java.lang.Thread.run(Unknown Source)
2014-09-06 21:11:30   COMMAND   Got command from <zensiert>: !botinfo
2014-09-06 21:14:01   COMMAND   Got command from <zensiert>: !botinfo
2014-09-06 21:30:59   bot3: EXCEPTION - Bot Version: 5.2.4 Final (29.06.2014)
java.lang.NumberFormatException: null
   at java.lang.Integer.parseInt(Unknown Source)
   at java.lang.Integer.parseInt(Unknown Source)
   at de.stefan1200.jts3servermod.functions.ChannelNotify.handleClientEvents(ChannelNotify.java:272)
   at de.stefan1200.jts3servermod.JTS3ServerMod.teamspeakActionPerformed(JTS3ServerMod.java:2245)
   at de.stefan1200.jts3serverquery.JTS3ServerQuery$2.run(JTS3ServerQuery.java:2172)
   at java.lang.Thread.run(Unknown Source)
2014-09-06 21:36:33   bot3: EXCEPTION - Bot Version: 5.2.4 Final (29.06.2014)
java.lang.NumberFormatException: null
   at java.lang.Integer.parseInt(Unknown Source)
   at java.lang.Integer.parseInt(Unknown Source)
   at de.stefan1200.jts3servermod.functions.ChannelNotify.handleClientEvents(ChannelNotify.java:272)
   at de.stefan1200.jts3servermod.JTS3ServerMod.teamspeakActionPerformed(JTS3ServerMod.java:2245)
   at de.stefan1200.jts3serverquery.JTS3ServerQuery$2.run(JTS3ServerQuery.java:2172)
   at java.lang.Thread.run(Unknown Source)

Achtung, die mit dem Platzhalter <zensiert> ersetzten Stellen wurden von mir eigenhändig verändert.
Die Konfig sende ich dir per Mail zu.

Stefan1200

Ok, der Fehler hängt damit zusammen, das der Bot von der TS3 Push Benachrichtigung keinen Client Typ übermittelt bekommt (obwohl diese Info eigentlich immer kommt).

Wie schnell nach dem Starten kommt der Fehler? Eine Debug Log der die ganze Kommunikation mit dem TS3 Server loggt, wäre sehr hilfreich, allerdings wird diese Log nach wenigen Stunden sehr sehr groß. Dies kann aktiviert werden in der JTS3ServerMod_InstanceManager.cfg mit X.instance_debug = 1 (X ersetzen mit der entsprechenden Zahl) mit anschließendem Neustart vom Bot. In dieser neuen Debug Logdatei sind dann auch die Logindaten in den ersten paar Zeilen zu sehen, diese kann für mich zensiert werden.

Welche TS3 Server Version setzt du ein?

SINE

#4
Server 64-bit 3.0.10.3
Ich werde den Debug Log gleich aktivieren und sobald das Problem auftritt ggf. wieder deaktivieren und ihn dir schicken.

LG

Edit:
Ich habe das dumpfe Gefühl, dass es am vorherigen Encoding der .cfg lag, dort war ja ANSI eingestellt, anstatt latin-1.
Seitdem hat es ständig funktioniert. Wobei ich mich schon wundere, denn es wurden in der cfg keine Umlaute genutzt.

Ich lasse den Log jetzt mal bis zu 2 Tage mitlaufen, falls das Problem wieder auftreten sollte und melde mich in diesem Falle wieder.

Stefan1200

Bei zwei Tagen wird die Logdatei über ein Gigabyte groß und schwer zu gebrauchen :(  Aber vielleicht haben wir ja Glück und der Fehler tritt schon nach einigen Stunden auf.

Am Encoding glaube ich nicht, dann wäre trotzdem eine Nachricht angekommen, nur eventuell mit den falschen Buchstaben. Oder es hätte eine Fehlermeldung in der normalen Log gegeben, wenn der TS3 Server sich weigert die Nachricht abzuschicken.

SINE

Ich konnte die Problemzeit erfolgreich mitschneiden.
Allerdings habe ich riesige Probleme, die gesamte Datei zu zensieren, deswegen schicke ich dir nur das Ende des Logs, zu diesem Ende habe ich mit dem Client [TEST.... die Funktion probiert und dabei gemerkt, dass der Fehler auftritt (zum Ende der Datei).

Danach habe ich den Bot runtergefahren und das Debugging deaktiviert.

Ich schicke dir den Log nun per Mail zu.

Stefan1200

Quote from: SINE on September 07, 2014, 08:52:14 PM
Allerdings habe ich riesige Probleme, die gesamte Datei zu zensieren

Warum musst du mir mehr zensieren, als das Passwort?!? Das Passwort steht nur beim Login Vorgang am Anfang.

SINE

Weil dort IP-Adressen der User drinnen stehen und ich keinen Stress mit der Communtiy möchte ;)
Außerdem ist es egal welchen Teil der gesamten Datei ich bearbeite, es klappt am ganzen Stück nicht.
Ich habe dir nun das Ende der Datei zugeschickt.

Stefan1200

Der Fehler ist aufgetreten bei welcher Channel ID? Weißt du zufällig auch noch die Client ID?

In der Logdatei sehe ich zwei Clients, die informiert worden sind, das Admins sich um jene bald kümmern werden. Und da haben auch alle Admins erfolgreich die Nachricht erhalten.

SINE

Nein, ganz zum Schluss, als der Tester (id: 49) die Channel-ID: 1435 betritt, bekommen die Admins die Nachricht nicht!

Stefan1200

#11
Das ist die einzige Stelle in der Logdatei, wo der TS3 Server den Bot informiert, das jemand den Channel 1435 betritt (habe auf wichtige Zeilen zusammen gekürzt, ChannelNamen anonymisiert und BB Code der besseren Lesbarkeit entfernt):

< notifyclientmoved ctid=1435 reasonid=0 clid=70
> sendtextmessage targetmode=1 msg=\n******************\nSUPPORTCHANNEL:\sTEST1[invisible]\s(DB\sID:\s6751)\shat\s(Kein\sAL)\sBrauche\sAdmin\/Moderator\sbetreten!\n******************\n target=7
< error id=0 msg=ok
> sendtextmessage targetmode=1 msg=\n******************\nSUPPORTCHANNEL:\sTEST1[invisible]\s(DB\sID:\s6751)\shat\s(Kein\sAL)\sBrauche\sAdmin\/Moderator\sbetreten!\n******************\n target=111
< error id=0 msg=ok
> sendtextmessage targetmode=1 msg=\n******************\nSUPPORTCHANNEL:\sTEST1[invisible]\s(DB\sID:\s6751)\shat\s(Kein\sAL)\sBrauche\sAdmin\/Moderator\sbetreten!\n******************\n target=115
< error id=0 msg=ok
> sendtextmessage targetmode=1 msg=\n******************\nSUPPORTCHANNEL:\sTEST1[invisible]\s(DB\sID:\s6751)\shat\s(Kein\sAL)\sBrauche\sAdmin\/Moderator\sbetreten!\n******************\n target=116
< error id=0 msg=ok
> sendtextmessage targetmode=1 msg=Bitte\swarte,\s5\sPersonen\swurden\süber\sdeine\sAnwesenheit\sbenachrichtigt. target=70


Das sieht alles richtig aus. Falls der TS3 Server den Bot nicht informiert hat, bin ich auch ratlos. Wäre nicht das erste Mal, das der TS3 Server irgendein Bug hat, der mich ärgert...

Eine Erklärung für den NullPointerException habe ich noch nicht, schaue ich mir in einer ruhigen Minute mal an. Eine schnelle Lösung scheint hier nicht möglich, aber vielleicht bekomme ich noch eine Eingebung. ;)