TS3Tools / TS3UpdateScript

Automate all update processes for your TeamSpeak 3 server instances
GNU General Public License v3.0
189 stars 22 forks source link

Unable to update to 3.2.0 and parse error: type 'object' has no elements to extract (arg 2) #85

Closed sanjiyan closed 6 years ago

sanjiyan commented 6 years ago

Hi, Unable to update my TS server from 3.2.0 to 3.3.0. Does not detect the correct version installed and now has parse errors.

I am running TS3UpdateScript Version 5.6.5 (2018-05-15)

1 TeamSpeak 3 server instance found...

Collecting as much as possible information for following TeamSpeak 3 server instance: /home/teamspeak/teamspeak
13 instances for update process...
############################################################################
        Do you want to update this instance to the following version? 3.3.0

        Installation Directory: /home/teamspeak/teamspeak
        Installed Version: 3.1.3 (Build: )
        Installed Platform:
        Installed Architecture:

        Instance Log Files:
        Instance TSDNS Binary: /home/teamspeak/teamspeak/tsdns/tsdnsserver__
        TSDNS Status: Inactive

        Owner:  (UID: )
        Group:  (GID: )

        Database Type:
############################################################################
Please answer: ([y]es/[n]o) y
Temporary server passwords were not backuped, because you've disabled it or whether telnet nor expect is installed.
TeamSpeak 3 server instance stopped for update process.
Backup created successful.
parse error: type 'object' has no elements to extract (arg 2)
parse error: type 'object' has no elements to extract (arg 2)
wget: missing URL
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.
wget: missing URL
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.
bzip2: Can't open input file teamspeak3-server.tar.bz2: No such file or directory.
cp: cannot stat 'teamspeak3-server__/*': No such file or directory
rm: cannot remove 'teamspeak3-server.tar': No such file or directory
chown: missing operand after ‘/home/teamspeak/teamspeak/’
Try 'chown --help' for more information.
Could not update TeamSpeak 3 server instance. Do you have enough space on '/home/teamspeak/teamspeak'?
./TS3UpdateScript: line 2095: expect: command not found
Due of the failed update, the TS3UpdateScript has created a debug report in /home/teamspeak/teamspeak/20180814-1833-ts3us-debug-report.md
Update failed. Rollback to the version '3.1.3'.
TeamSpeak 3 server instance was started successful.
Backup was deleted successful.
./TS3UpdateScript: line 1001: cd: 3.2.0/3.2.0/logs/: No such file or directory
./TS3UpdateScript: line 1001: cd: 3.2.0/3.2.0/logs/: No such file or directory
stat: missing operand
Try 'stat --help' for more information.
-su: line 0: cd: 3.2.0: No such file or directory

Following instance needs an update, but is stopped and not touched by the script: 3.2.0 (Installed Version: 3.2.0)

Cleaning up...

Summary of measured execution time for each step
Total script: 27s
Self-Test: 5s
Collecting Information: 4s
Validation: 0s
Execution Mechanism: 18s
Cleanup: 0s

Thanks for using this script! Support the development of this script and donate: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=7ZRXLSC2UBVWE

I have attached the --debug error.log error.log

Information about my TS server.

Ubuntu 16.04.5 LTS

My ts3server.ini for information machine_id= default_voice_port=xxxxx voice_ip=0.0.0.0 licensepath= filetransfer_port=xxxxxx filetransfer_ip=0.0.0.0 query_port=xxxxxx query_ip=0.0.0.0 query_ip_whitelist=query_ip_whitelist.txt query_ip_blacklist=query_ip_blacklist.txt dbplugin=ts3db_sqlite3 dbpluginparameter= dbsqlpath=sql/ dbsqlcreatepath=create_sqlite/ dbconnections=10 logpath=/var/log/teamspeak3 logquerycommands=0 dbclientkeepdays=30 logappend=1 query_skipbruteforcecheck=0

ts3server_0.log 2018-08-14 18:38:48.153376|INFO |ServerLibPriv | |TeamSpeak 3 Server 3.2.0 (2018-05-08 06:11:20) 2018-08-14 18:38:48.153451|INFO |ServerLibPriv | |SystemInformation: Linux 4.4.0-131-generic #157-Ubuntu SMP Thu Jul 12 15:51:36 UTC 2018 x86_64 Binary: 64bit 2018-08-14 18:38:48.153475|INFO |ServerLibPriv | |Using hardware aes 2018-08-14 18:38:48.154156|INFO |DatabaseQuery | |dbPlugin name: SQLite3 plugin, Version 3, (c)TeamSpeak Systems GmbH 2018-08-14 18:38:48.154193|INFO |DatabaseQuery | |dbPlugin version: 3.11.1 2018-08-14 18:38:48.158493|INFO |DatabaseQuery | |checking database integrity (may take a while) 2018-08-14 18:38:48.192680|WARNING |Accounting | |Unable to open licensekey.dat, falling back to limited functionality 2018-08-14 18:38:48.197109|INFO |Accounting | |Licensing Information 2018-08-14 18:38:48.197157|INFO |Accounting | |licensed to : Anonymous 2018-08-14 18:38:48.197172|INFO |Accounting | |type : No License 2018-08-14 18:38:48.197195|INFO |Accounting | |starting date : Wed May 31 22:00:00 2017 2018-08-14 18:38:48.197210|INFO |Accounting | |ending date : Fri Aug 31 22:00:00 2018 2018-08-14 18:38:48.197222|INFO |Accounting | |max virtualservers: 1 2018-08-14 18:38:48.197233|INFO |Accounting | |max slots : 32 2018-08-14 18:38:50.199012|INFO | | |Puzzle precompute time: 1958 2018-08-14 18:38:50.200569|INFO |FileManager | |listening on 0.0.0.0:xxxxx 2018-08-14 18:38:50.207239|INFO |CIDRManager | |updated query_ip_whitelist ips: 127.0.0.1/32, ::1/128, 2018-08-14 18:38:50.207351|INFO |Query | |listening on 0.0.0.0:xxxxx

Sebbo94BY commented 6 years ago

Hi @sanjiyan , Thank you for your support request.

Can you please check, why you can't download / fetch the server.json? wget -t 1 -T 3 https://www.teamspeak.com/versions/server.json -q -O -

The script was unable to fetch the content of this file and due of this, you the update failed.

What does the above command return on your server?

PS: If you need to restore your TeamSpeak 3 server instance, you'll find the backup here: /var/backups/TS3Tools/TS3UpdateScript/

There is a hashed directory, where you'll find all files of your TS3 server.

sanjiyan commented 6 years ago

Out put from the command requested {"windows":{"x86_64":{"version":"3.3.0","checksum":"a2e7cad446381033281e9c2df497bf2688c55791bbe35f9eb77ab3b021e06a34","mirrors":{"4Netplayers.de":"http:\/\/dl.4players.de\/ts\/releases\/3.3.0\/teamspeak3-server_win64-3.3.0.zip","gamed!de":"http:\/\/teamspeak.gameserver.gamed.de\/ts3\/releases\/3.3.0\/teamspeak3-server_win64-3.3.0.zip"}},"x86":{"version":"3.3.0","checksum":"6ca3f3c8ac1537522109d6eb85bdded2bfa47e3aafba2e6ff81ddf839e259242","mirrors":{"4Netplayers.de":"http:\/\/dl.4players.de\/ts\/releases\/3.3.0\/teamspeak3-server_win32-3.3.0.zip","gamed!de":"http:\/\/teamspeak.gameserver.gamed.de\/ts3\/releases\/3.3.0\/teamspeak3-server_win32-3.3.0.zip"}}},"macos":{"x86_64":{"version":"3.3.0","checksum":"4d7fa9de2d12bd4fd8201c87948f30ec11ee116ffc6965d9a44f64663e58ea17","mirrors":{"4Netplayers.de":"http:\/\/dl.4players.de\/ts\/releases\/3.3.0\/teamspeak3-server_mac-3.3.0.zip","gamed!de":"http:\/\/teamspeak.gameserver.gamed.de\/ts3\/releases\/3.3.0\/teamspeak3-server_mac-3.3.0.zip"}}},"freebsd":{"x86":{"version":"3.3.0","checksum":"8d99abecf8305a0e5b6c8086187df3ffa56bdfe292b9ffced76787faccbb71d7","mirrors":{"4Netplayers.de":"http:\/\/dl.4players.de\/ts\/releases\/3.3.0\/teamspeak3-server_freebsd_x86-3.3.0.tar.bz2","gamed!de":"http:\/\/teamspeak.gameserver.gamed.de\/ts3\/releases\/3.3.0\/teamspeak3-server_freebsd_x86-3.3.0.tar.bz2"}},"x86_64":{"version":"3.3.0","checksum":"e98c7d60d1a551c791d19515e575706f6fa50fedce1516a7d3e695513b9072d8","mirrors":{"4Netplayers.de":"http:\/\/dl.4players.de\/ts\/releases\/3.3.0\/teamspeak3-server_freebsd_amd64-3.3.0.tar.bz2","gamed!de":"http:\/\/teamspeak.gameserver.gamed.de\/ts3\/releases\/3.3.0\/teamspeak3-server_freebsd_amd64-3.3.0.tar.bz2"}}},"linux":{"x86":{"version":"3.3.0","checksum":"7f15d29eda0fce6f0552a2d8b99ebafae6cbb520564acf0fae6efc98684f0855","mirrors":{"4Netplayers.de":"http:\/\/dl.4players.de\/ts\/releases\/3.3.0\/teamspeak3-server_linux_x86-3.3.0.tar.bz2","gamed!de":"http:\/\/teamspeak.gameserver.gamed.de\/ts3\/releases\/3.3.0\/teamspeak3-server_linux_x86-3.3.0.tar.bz2"}},"x86_64":{"version":"3.3.0","checksum":"f124868f7bdb1b359f984d2b5cd16b6e0259cecb85bad32ffafdfa91576065cb","mirrors":{"4Netplayers.de":"http:\/\/dl.4players.de\/ts\/releases\/3.3.0\/teamspeak3-server_linux_amd64-3.3.0.tar.bz2","gamed!de":"http:\/\/teamspeak.gameserver.gamed.de\/ts3\/releases\/3.3.0\/teamspeak3-server_linux_amd64-3.3.0.tar.bz2"}}}}

sanjiyan commented 6 years ago

It also looks like the script can not find my installed platform and architecture.

sanjiyan commented 6 years ago

Here is the output from the script, same issue it seems: ` ./TS3UpdateScript --check

About: This is the most widely used and fastest shell script to update all your TeamSpeak 3 server instances. Author: Sebastian Kraetzig info@ts3-tools.info | Website: www.ts3-tools.info | facebook: www.facebook.com/TS3Tools License: GNU GPLv3


| / | / | |_ | | ()_ / | | | _ \ | \ ____| / \ / | / | | | ' | | / _ \ | | ) |) || || () | () | _ _| | | | | | () | || |// __/ \/|_|()|| ||| _/

Script Version: 5.6.5 (2018-05-15) Script License: Community (No support bought) Support License: Community (No support plan bought)

Donate and support this script: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=7ZRXLSC2UBVWE


Please wait... Script is working...

Performing self-tests as preventive measures against possible failures [ OK ]

Collecting necessary information for further tasks [ OK ]

All collected information were validated successfully as preventive measures against possible failures [ INFO ]

1 TeamSpeak 3 server instance found...

Collecting as much as possible information for following TeamSpeak 3 server instance: /home/teamspeak/teamspeak 19 instances for update process... ############################################################################ Do you want to update this instance to the following version? 3.3.0

    Installation Directory: /home/teamspeak/teamspeak
    Installed Version: 3.1.3 (Build: )
    Installed Platform:
    Installed Architecture:

    Instance Log Files:
    Instance TSDNS Binary: /home/teamspeak/teamspeak/tsdns/tsdnsserver__
    TSDNS Status: Inactive

    Owner:  (UID: )
    Group:  (GID: )

    Database Type:

############################################################################ Please answer: ([y]es/[n]o) y Temporary server passwords were not backuped, because you've disabled it or whether telnet nor expect is installed. TeamSpeak 3 server instance stopped for update process. Backup created successful. parse error: type 'object' has no elements to extract (arg 2) parse error: type 'object' has no elements to extract (arg 2) wget: missing URL Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options. wget: missing URL Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options. bzip2: Can't open input file teamspeak3-server.tar.bz2: No such file or directory. cp: cannot stat 'teamspeak3-server__/*': No such file or directory rm: cannot remove 'teamspeak3-server.tar': No such file or directory chown: missing operand after ‘/home/teamspeak/teamspeak/’ Try 'chown --help' for more information. Could not update TeamSpeak 3 server instance. Do you have enough space on '/home/teamspeak/teamspeak'? ./TS3UpdateScript: line 2095: expect: command not found Due of the failed update, the TS3UpdateScript has created a debug report in /home/teamspeak/teamspeak/20180814-2014-ts3us-debug-report.md Update failed. Rollback to the version '3.1.3'. TeamSpeak 3 server instance was started successful. Backup was deleted successful. ./TS3UpdateScript: line 1001: cd: 3.2.0/3.2.0/logs/: No such file or directory ./TS3UpdateScript: line 1001: cd: 3.2.0/3.2.0/logs/: No such file or directory stat: missing operand Try 'stat --help' for more information. -su: line 0: cd: 3.2.0: No such file or directory

Following instance needs an update, but is stopped and not touched by the script: 3.2.0 (Installed Version: 3.2.0)

Cleaning up...

Summary of measured execution time for each step Total script: 60s Self-Test: 4s Collecting Information: 2s Validation: 0s Execution Mechanism: 54s Cleanup: 0s

Thanks for using this script! Support the development of this script and donate: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=7ZRXLSC2UBVWE root@ts-ubuntu-s-1vcpu-1gb-nyc3-01:~/TS3UpdateScript-master# `

sanjiyan commented 6 years ago

The script is not even finding the correct version installed, I have Server 3.2.0 installed.

Sebbo94BY commented 6 years ago

Can you please show the content of your TS3 server directory and provide me the debug file of the script?

sanjiyan commented 6 years ago

Of course, please find below the information you requested.

root@ts-ubuntu-s-1vcpu-1gb-nyc3-01:/home/teamspeak/teamspeak# pwd /home/teamspeak/teamspeak

Contents of above directory:

root@ts-ubuntu-s-1vcpu-1gb-nyc3-01:/home/teamspeak/teamspeak#

ls -lha total 14M drwxrwxr-x 10 teamspeak sanjiyan 4.0K Aug 15 07:37 . drwxr-xr-x 3 teamspeak teamspeak 4.0K Feb 16 12:11 .. -rw-r--r-- 1 root root 20K Aug 15 07:37 20180815-0737-ts3us-debug-report.md drwxr-xr-x 2 teamspeak teamspeak 4.0K Feb 16 12:11 backups -rw-rw-r-- 1 teamspeak teamspeak 55K May 18 10:05 CHANGELOG drwxrwxr-x 3 teamspeak teamspeak 4.0K Jul 19 2017 doc drwx------ 4 teamspeak teamspeak 4.0K Feb 16 12:18 files -rwxrwxr-x 1 teamspeak teamspeak 978K May 18 10:05 libts3db_mariadb.so -rwxrwxr-x 1 teamspeak teamspeak 2.1M May 18 10:05 libts3db_sqlite3.so -rw-rw-r-- 1 teamspeak teamspeak 67K May 18 10:05 LICENSE drwx------ 2 teamspeak teamspeak 4.0K Aug 15 07:35 logs ---------- 1 teamspeak teamspeak 9 Feb 20 19:44 .password-file -rw-r--r-- 1 teamspeak teamspeak 0 Sep 1 2017 query_ip_blacklist.txt -rw-r--r-- 1 teamspeak teamspeak 14 Sep 1 2017 query_ip_whitelist.txt drwxrwxr-x 2 teamspeak teamspeak 4.0K Jul 19 2017 redist -rw-r--r-- 1 teamspeak teamspeak 454 Aug 10 12:32 server.ini drwxrwxr-x 2 teamspeak teamspeak 4.0K May 18 10:05 serverquerydocs drwxrwxr-x 5 teamspeak teamspeak 12K May 18 10:05 sql -rwxr-xr-x 1 teamspeak teamspeak 11M May 18 10:05 ts3server -rw-rw-r-- 1 teamspeak teamspeak 445 Sep 2 2017 ts3server.ini -rw-r--r-- 1 teamspeak teamspeak 0 Feb 21 19:05 .ts3server_license_accepted -rwxrwxr-x 1 teamspeak teamspeak 129 May 18 10:05 ts3server_minimal_runscript.sh -rw-rw-r-- 1 teamspeak teamspeak 6 Aug 15 07:37 ts3server.pid -rw-r--r-- 1 teamspeak teamspeak 218K Aug 15 07:37 ts3server.sqlitedb -rw-r--r-- 1 teamspeak teamspeak 32K Aug 15 07:40 ts3server.sqlitedb-shm -rw-r--r-- 1 teamspeak teamspeak 4.2K Aug 15 07:37 ts3server.sqlitedb-wal -rwxr-xr-x 1 teamspeak teamspeak 2.7K May 18 10:05 ts3server_startscript.sh drwxrwxr-x 2 teamspeak teamspeak 4.0K Feb 16 12:15 tsdns

Attached is the debug.log taken from the command --check --debug debug.log debug.log

EDIT: Updated debug.log

Sebbo94BY commented 6 years ago

Can you please stop your TeamSpeak 3 server, delete all logs, start the server again and execute the TS3UpdateScript? But please, answer with "n".

Was the script now able to detect the correct information?

It looks like as you don't have telnet and expect installed and due of this, the script is trying to fetch all information like installed version, platform and architecture from the TeamSpeak 3 servers log file.

As your log returns multiple values, it can't detect the correct values and due of this, the output is broken. If you could provide me your /var/log/teamspeak3/ts3server_0.log log file, I could improve the script.

Btw: Are you writing multiple TeamSpeak 3 server instances to the same log file? If yes, the script can't decide, which information is from which instance, so I suggest to install those two mentioned software packages to determine all information directly from each server by using the ServerQuery interface.

sanjiyan commented 6 years ago

Deleting the logs, now shows the correct information


Please wait... Script is working...

Performing self-tests as preventive measures against possible failures[ .. ]

                                                                  [ OK ]

Collecting necessary information for further tasks [ .. ]

                                                                  [ OK ]

All collected information were validated successfully as preventive measures aga inst possible failures [ INFO ]

1 TeamSpeak 3 server instance found...

Collecting as much as possible information for following TeamSpeak 3 server inst ance: /home/teamspeak/teamspeak 1 instance for update process... ############################################################################ Do you want to update this instance to the following version? 3.3.0

    Installation Directory: /home/teamspeak/teamspeak
    Installed Version: 3.2.0 (Build: Unknown)
    Installed Platform: Linux
    Installed Architecture: amd64

    Instance Log Files: /var/log/teamspeak3
    Instance TSDNS Binary: /home/teamspeak/teamspeak/tsdns/tsdnsserver_linux                                                                                                                                                                                                                                             _amd64
    TSDNS Status: Inactive

    Owner: teamspeak (UID: 1001)
    Group: teamspeak (GID: 1001)

    Database Type: SQLite

############################################################################ Please answer: ([y]es/[n]o) n Instance will not be updated.

Cleaning up...

Obviously I deleted the teamspeak_0.log, but here is the new output from the newly generated log

cat /var/log/teamspeak3/ts3server_0.log 2018-08-15 17:50:56.916071|INFO |ServerLibPriv | |TeamSpeak 3 Server 3.2.0 (2018-05-08 06:11:20) 2018-08-15 17:50:56.916197|INFO |ServerLibPriv | |SystemInformation: Linux 4.4.0-131-generic #157-Ubuntu SMP Thu Jul 12 15:51:36 UTC 2018 x86_64 Binary: 64bit 2018-08-15 17:50:56.916225|INFO |ServerLibPriv | |Using hardware aes 2018-08-15 17:50:56.916931|INFO |DatabaseQuery | |dbPlugin name: SQLite3 plugin, Version 3, (c)TeamSpeak Systems GmbH 2018-08-15 17:50:56.916959|INFO |DatabaseQuery | |dbPlugin version: 3.11.1 2018-08-15 17:50:56.917209|INFO |DatabaseQuery | |checking database integrity (may take a while) 2018-08-15 17:50:56.948430|WARNING |Accounting | |Unable to open licensekey.dat, falling back to limited functionality 2018-08-15 17:50:56.948618|INFO |Accounting | |Licensing Information 2018-08-15 17:50:56.948642|INFO |Accounting | |licensed to : Anonymous 2018-08-15 17:50:56.948656|INFO |Accounting | |type : No License 2018-08-15 17:50:56.948674|INFO |Accounting | |starting date : Wed May 31 22:00:00 2017 2018-08-15 17:50:56.948688|INFO |Accounting | |ending date : Fri Aug 31 22:00:00 2018 2018-08-15 17:50:56.948700|INFO |Accounting | |max virtualservers: 1 2018-08-15 17:50:56.948711|INFO |Accounting | |max slots : 32 2018-08-15 17:50:58.580013|INFO | | |Puzzle precompute time: 1606 2018-08-15 17:50:58.580318|INFO |FileManager | |listening on 0.0.0.0:30034 2018-08-15 17:50:58.587633|INFO |CIDRManager | |updated query_ip_whitelist ips: 127.0.0.1/32, ::1/128, 2018-08-15 17:50:58.587768|INFO |Query | |listening on 0.0.0.0:10012 root@ts-ubuntu-s-1vcpu-1gb-nyc3-01:~/TS3UpdateScript-master#

As for the multiple TS instances, no I only have the one running on the VM.

Would you like me to install 'telnet' and 'expect' ?

I have not attempted to upgrade the TS instance, untill you say for me to do so.

sanjiyan commented 6 years ago

I took a plunge and installed expect and telnet.

I then ran the script again selected Y to update. I am happy to say it updated the TS server correctly.

Sebbo94BY commented 6 years ago

Yeah, with telnet and expect installed, the script can better detect all required information.

Great to hear, that your server was updated successful. :)

I'll close this issue now. If you have any further questions, please don't hesitate to contact us again.