TeamSpeak Server 3.13.x

Hi folks,
we just released our latest server version into the wild.

This version now adds PostgreSQL supports for the server database and allows you to use your own MaxMind Geo IP database instead of using the hard coded one from IP2location.

We’ve made various improvements to WebQuery - for example, we now return 2xx and 4xx HTTP status code, we accept a wider range of JSON syntax (including arrays), and some string parameters will be automatically converted to the correct integer type if appropriate.

And last but not least we fixed some bugs and a memory leak.

Important Info for mySQL users. You will fail to update! Plesse wait for update 3.13.1 !!!

You want more Information about this release? Here is the full change log :smiley:

## Server Release 3.13.2 18 November 2020

### Fixed
- Server does not start when serveradmin account is not found.

## Server Release 3.13.1 11 November 2020

### Fixed
- Database update script does not work for MySQL and PostgreSQL

## Server Release 3.13.0 9 November 2020

### Important
- Support for 32-bit builds of FreeBSD has been dropped. 64-bit FreeBSD is still supported.
- The server_quickstart.txt file is now in Markdown format as server_quickstart.md. It has also been significantly updated.

### Fixed
- Fixed slow startup after an SQLite schema migration
- Better handling of invalid base64 snapshots
- Fixed an issue with negative whisper power permission checks
- Fixed possible memory leak under certain obscure conditions
- Fixed query login groups being improperly cached in certain cases
- Invalid password attempts should respect SERVERINSTANCE_SERVERQUERY_BAN_TIME

### Added
- New support for PostgreSQL databases. Please read server_quickstart for more information.
- New support for MMDB style GeoIP databases (again, see server_quickstart!)
- Webquery supports access by server port : /byport/9987/clientinfo will send the command to the virtualserver at port 9987.
- Added warning for cases of UDP socket failure
- banclient can now accept multiple clientids
- banclient, clientmove and clientkick accept the -continueonerror parameter to ignore errors
- New optional parameter for clientlist '-location'
- Advanced users: Added a new command line argument `logquerytiminginterval` for diagnostic logging of ServerQuery timing.
- Advanced users: Added a new command line argument `querypoolsize` to allow you to specify the number of threads in the ServerQuery pool.

### Changed
- Note: query_ip_whitelist has been renamed to query_ip_allowlist, and query_ip_blacklist is now query_ip_denylist.
- Note: the old whitelist/blacklist names are still accepted.
- Webquery errors will return a HTTP 4xx series status code.
- Improved database performance for some query commands (notably serverlist)
- permget returns 'invalid perm id' error if permid is 0, or convert error if negative
- instanceedit no longer allows query groups for server template groups
- serveredit should correctly update client idle time
- Better validation of tokencustomsets when creating privilege keys
- Various permlist commands now include the relevant id (client, etc) in the output for your convenience
- MariaDB plugin should be a little more tolerant of broken connections
- We now print a warning if you specify an unknown command line option

Here you can Download the server.
The download on website and docker follows.

You have creative Feedback or issues with that server release?
Tell us! :wave:

23 Likes

:fire: :smiling_face_with_three_hearts:

1 Like

noice

1 Like

how do i update my teamspeak server?

Stop your server instance (not kill), make a backup of ts3server.sqlitedb file or mariadb, download latest version of server, unzip this, overwrite old files by extracted content. Start the server with ts3server_startscript.sh (first start can take some time)

:wink:

3 Likes

Here the full How to for all operation systems :slight_smile:

6 Likes

I thought Soon was Blizzard’s trade mark :man_shrugging:

TeamSpeak Download page is lagging too often as well.

Now you got why the word ‘Soon’ was used.

5 Likes

I tried to update the server to the new version and i can’t manage to get it working and i got no idea why it keeps giving me this error

2020-11-09 22:01:59.370066|INFO    |ServerLibPriv |   |TeamSpeak 3 Server 3.13.0 (2020-11-09 11:40:56)
2020-11-09 22:01:59.370188|INFO    |ServerLibPriv |   |SystemInformation: Linux 4.15.0-96-generic #97-Ubuntu SMP Wed Apr 1 03:25:46 UTC 2020 x86_64 Binary: 64bit
2020-11-09 22:01:59.370221|INFO    |ServerLibPriv |   |Using hardware aes
2020-11-09 22:01:59.373602|INFO    |DatabaseQuery |   |dbPlugin name:    MariaDB plugin, version 3, (c)TeamSpeak Systems GmbH
2020-11-09 22:01:59.373685|INFO    |DatabaseQuery |   |dbPlugin version: 2
2020-11-09 22:01:59.385769|ERROR   |DatabaseQuery |   |db_exec() CREATE INDEX IF NOT EXISTS index_servers_machine_id ON servers (server error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF NOT EXISTS index_servers_machine_id ON servers (server_machine_id)' at line 1
2020-11-09 22:01:59.385849|ERROR   |SQL           |   |database update to revision: 34 failed!

Does anyone know how i can get this sorted out?

1 Like

Please consider to move/convert your database from MySQL to MariaDB.
Because we can not give you any guarantee that MySQL still works with our server!

To fix this you can try following (no guarantee from us that it works!):

  • Open the server folder and then switch to the sql folder
  • Then open the update_34.sql in an editor
  • Replace CREATE INDEX IF NOT EXISTS with CREATE INDEX
  • Start the server

Above is not working?
Have a backup and import that into a MariaDB server.

3 Likes

In English:
Hello everybody,
I also have an error message when updating. I have a guess what it is, but how can I fix the problem?
Here is the error message:

CRITICAL|DatabaseQuery | |Plugin api version is 2 while 3 is required

I guess it is because we are still using libmariadb.so.2. But I cannot find a libmariadb.so.3.
Thank you in advance for your feedback.

With kind regards,
Kevin

PS: In your logchange there is nothing about a change of the API and that a version 2 is not supported anymore. Until version 3.12.2 it was no problem at all.

In German:
Hallo zusammen,
ich habe auch eine Fehlermeldung beim Updaten. Ich habe zwar eine Vermutung woran es liegt, aber wie kann ich das Problem beheben?
Hier die Fehlermeldung:

CRITICAL|DatabaseQuery | |Plugin api version is 2 while 3 is required

Ich nehme an, es liegt daran das wir noch libmariadb.so.2 nutzen.
Aber eine libmariadb.so.3 finde ich nicht.

Ich Danke vorab für eine Rückmeldung.

LG
Kevin

PS: In eurer Logchange steht nichts von einer Änderung der API und das einer 2er Version nicht unterstützt wird mehr. Bis Version 3.12.2 war es garkein Problem.

You can update your dependencies to a newer version or put the libmaria file from redist folder into the root of the server.

Server 3.12.1 already used version 3.

2 Likes

Nope still doesnt work

==================================================================================================================================

2020-11-10 12:55:46.263492|INFO    |ServerLibPriv |   |TeamSpeak 3 Server 3.13.0 (2020-11-09 11:40:56)
2020-11-10 12:55:46.263723|INFO    |ServerLibPriv |   |SystemInformation: Linux 4.15.0-96-generic #97-Ubuntu SMP Wed Apr 1 03:25:46 UTC 2020 x86_64 Binary: 64bit
2020-11-10 12:55:46.263775|INFO    |ServerLibPriv |   |Using hardware aes
2020-11-10 12:55:46.285247|INFO    |DatabaseQuery |   |dbPlugin name:    MariaDB plugin, version 3, (c)TeamSpeak Systems GmbH
2020-11-10 12:55:46.285315|INFO    |DatabaseQuery |   |dbPlugin version: 2
2020-11-10 12:55:46.425025|ERROR   |DatabaseQuery |   |db_exec() CREATE INDEX index_servers_machine_id ON servers (server_machine_id);C error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF NOT EXISTS index_clients_server_id_lastconnected_unique_id ON clients (server' at line 1
2020-11-10 12:55:46.425112|ERROR   |SQL           |   |database update to revision: 34 failed!


==================================================================================================================================

2020-11-10 12:56:01.789156|INFO    |ServerLibPriv |   |TeamSpeak 3 Server 3.13.0 (2020-11-09 11:40:56)
2020-11-10 12:56:01.789328|INFO    |ServerLibPriv |   |SystemInformation: Linux 4.15.0-96-generic #97-Ubuntu SMP Wed Apr 1 03:25:46 UTC 2020 x86_64 Binary: 64bit
2020-11-10 12:56:01.789364|INFO    |ServerLibPriv |   |Using hardware aes
2020-11-10 12:56:01.790449|INFO    |DatabaseQuery |   |dbPlugin name:    MariaDB plugin, version 3, (c)TeamSpeak Systems GmbH
2020-11-10 12:56:01.790496|INFO    |DatabaseQuery |   |dbPlugin version: 2
2020-11-10 12:56:01.814388|ERROR   |DatabaseQuery |   |db_exec() CREATE INDEX index_servers_machine_id ON servers (server_machine_id);C error: Duplicate key name 'index_servers_machine_id'
2020-11-10 12:56:01.814444|ERROR   |SQL           |   |database update to revision: 34 failed!


==================================================================================================================================

2020-11-10 12:56:17.296699|INFO    |ServerLibPriv |   |TeamSpeak 3 Server 3.13.0 (2020-11-09 11:40:56)
2020-11-10 12:56:17.296834|INFO    |ServerLibPriv |   |SystemInformation: Linux 4.15.0-96-generic #97-Ubuntu SMP Wed Apr 1 03:25:46 UTC 2020 x86_64 Binary: 64bit
2020-11-10 12:56:17.296897|INFO    |ServerLibPriv |   |Using hardware aes
2020-11-10 12:56:17.297878|INFO    |DatabaseQuery |   |dbPlugin name:    MariaDB plugin, version 3, (c)TeamSpeak Systems GmbH
2020-11-10 12:56:17.297920|INFO    |DatabaseQuery |   |dbPlugin version: 2
2020-11-10 12:56:17.319666|ERROR   |DatabaseQuery |   |db_exec() CREATE INDEX index_servers_machine_id ON servers (server_machine_id);C error: Duplicate key name 'index_servers_machine_id'
2020-11-10 12:56:17.319714|ERROR   |SQL           |   |database update to revision: 34 failed!

So is it necessary to move to MariaDB?

Last try but then I’m out of ideas
Remove all text from the update_34.sql and then add select 'no_update_needed';

YES Please!

2 Likes

here is the error i got when i tried that change

Summary
==================================================================================================================================

2020-11-10 14:43:40.332864|INFO    |ServerLibPriv |   |TeamSpeak 3 Server 3.13.0 (2020-11-09 11:40:56)
2020-11-10 14:43:40.333048|INFO    |ServerLibPriv |   |SystemInformation: Linux 4.15.0-96-generic #97-Ubuntu SMP Wed Apr 1 03:25:46 UTC 2020 x86_64 Binary: 64bit
2020-11-10 14:43:40.333107|INFO    |ServerLibPriv |   |Using hardware aes
2020-11-10 14:43:40.334208|INFO    |DatabaseQuery |   |dbPlugin name:    MariaDB plugin, version 3, (c)TeamSpeak Systems GmbH
2020-11-10 14:43:40.334248|INFO    |DatabaseQuery |   |dbPlugin version: 2
2020-11-10 14:43:40.363390|INFO    |SQL           |   |database updated successfully to revision: 34
2020-11-10 14:43:40.363547|ERROR   |DatabaseQuery |   |db_exec() update instance_properties set value = '34' where ident='serverinstanc error: Commands out of sync; you can't run this command now
2020-11-10 14:43:40.363573|CRITICAL|SQL           |   |CRITICAL error while updating database version


==================================================================================================================================

2020-11-10 14:43:55.545640|INFO    |ServerLibPriv |   |TeamSpeak 3 Server 3.13.0 (2020-11-09 11:40:56)
2020-11-10 14:43:55.545775|INFO    |ServerLibPriv |   |SystemInformation: Linux 4.15.0-96-generic #97-Ubuntu SMP Wed Apr 1 03:25:46 UTC 2020 x86_64 Binary: 64bit
2020-11-10 14:43:55.545805|INFO    |ServerLibPriv |   |Using hardware aes
2020-11-10 14:43:55.546610|INFO    |DatabaseQuery |   |dbPlugin name:    MariaDB plugin, version 3, (c)TeamSpeak Systems GmbH
2020-11-10 14:43:55.546658|INFO    |DatabaseQuery |   |dbPlugin version: 2
2020-11-10 14:43:55.563726|INFO    |SQL           |   |database updated successfully to revision: 34
2020-11-10 14:43:55.563861|ERROR   |DatabaseQuery |   |db_exec() update instance_properties set value = '34' where ident='serverinstanc error: Commands out of sync; you can't run this command now
2020-11-10 14:43:55.563885|CRITICAL|SQL           |   |CRITICAL error while updating database version


==================================================================================================================================

2020-11-10 14:44:10.781691|INFO    |ServerLibPriv |   |TeamSpeak 3 Server 3.13.0 (2020-11-09 11:40:56)
2020-11-10 14:44:10.781801|INFO    |ServerLibPriv |   |SystemInformation: Linux 4.15.0-96-generic #97-Ubuntu SMP Wed Apr 1 03:25:46 UTC 2020 x86_64 Binary: 64bit
2020-11-10 14:44:10.781833|INFO    |ServerLibPriv |   |Using hardware aes
2020-11-10 14:44:10.782653|INFO    |DatabaseQuery |   |dbPlugin name:    MariaDB plugin, version 3, (c)TeamSpeak Systems GmbH
2020-11-10 14:44:10.782690|INFO    |DatabaseQuery |   |dbPlugin version: 2
2020-11-10 14:44:10.792605|INFO    |SQL           |   |database updated successfully to revision: 34
2020-11-10 14:44:10.792721|ERROR   |DatabaseQuery |   |db_exec() update instance_properties set value = '34' where ident='serverinstanc error: Commands out of sync; you can't run this command now
2020-11-10 14:44:10.792745|CRITICAL|SQL           |   |CRITICAL error while updating database version

thanks :slight_smile: i have to wait cause currently i need to change the host once i do i will move to the MariaDB

Hello everybody,

I wanted to upgrade my server to 3.13.0 this morning. Unfortunately, I also got the error message that the update failed because the database could not be updated.

2020-11-11 06:01:59.385849|ERROR   |SQL           |   |database update to revision: 34 failed!

My server doesn’t use a MySQL database, only the MySQL Lite version. (Please forgive me for not being able to post the exact error message because I wanted to get the whole thing done before work) The file update_34.sql not existed?!

Is that also so that I have to copy the mysqllib2.so file into the root directory?

Thank you very much :slight_smile:

@TheChaosToast @poqdavid

We are going to release a Hotfix today and you will be able to update then.

Meanwhile Download and use server 3.12.1.
Just overwrite all server files. It should start without any issue.

3 Likes

Very nice :slight_smile:

What I don’t understand: I don’t use an external database, but use the SQL-Lite database. Then why does this error occur? I would only be interested for the sake of interest :slight_smile:

Oh … almost forgotten:

is it actually enough if I simply rename the whitelist and blacklist?

On SQLite (is not MySQL) you should have no problem.

Yes you can rename them or ignore the message.

1 Like

But that’s just my problem; (that’s why I don’t understand).

As I said or written - currently I cannot reproduce the error message (something with Database failed) because I am currently at work.