Server crashes: Assertion "m_ClientDBID.is_assigned()" failed at xxx?

Hello everybody!

My teamspeak server is managed by LinuxGSM, a tool to create game servers (including teamspeak) easily and it worked without any issues since I switched from sqlite to mariadb. First it crashed because of the ‘Unable to create accounting service: No such file or directory’ error but I think I fixed it by declaring the server path in the “license-key” line from the ts3server.ini. But now I’m getting the following critical error in the logfile:

2021-09-30 14:17:49.044532|INFO    |ServerLibPriv |   |TeamSpeak 3 Server 3.13.6 (2021-06-09 10:22:37)
2021-09-30 14:17:49.044712|INFO    |ServerLibPriv |   |SystemInformation: Linux 4.19.0-13-amd64 #1 SMP Debian 4.19.160-2 (2020-11-28) x86_64 Binary: 64bit
2021-09-30 14:17:49.044778|INFO    |ServerLibPriv |   |Using hardware aes
2021-09-30 14:17:49.046089|INFO    |DatabaseQuery |   |dbPlugin name:    MariaDB plugin, version 3, (c)TeamSpeak Systems GmbH
2021-09-30 14:17:49.046173|INFO    |DatabaseQuery |   |dbPlugin version: 2
2021-09-30 14:17:49.058306|WARNING |Accounting    |   |Unable to open /home/ts3server/serverfiles/licensekey.dat, falling back to limited functionality
2021-09-30 14:17:49.058877|INFO    |Accounting    |   |Licensing Information
2021-09-30 14:17:49.058989|INFO    |Accounting    |   |licensed to       : Anonymous
2021-09-30 14:17:49.059024|INFO    |Accounting    |   |type              : No License
2021-09-30 14:17:49.059117|INFO    |Accounting    |   |starting date     : Thu Oct  1 00:00:00 2020
2021-09-30 14:17:49.059169|INFO    |Accounting    |   |ending date       : Tue Nov  1 00:00:00 2022
2021-09-30 14:17:49.059183|INFO    |Accounting    |   |max virtualservers: 1
2021-09-30 14:17:49.059195|INFO    |Accounting    |   |max slots         : 32
2021-09-30 14:17:49.839631|INFO    |              |   |Puzzle precompute time: 757
2021-09-30 14:17:49.841430|INFO    |FileManager   |   |listening on 0.0.0.0:30033, [::]:30033
2021-09-30 14:17:49.843808|INFO    |Query         |   |Using a query thread pool size of 2
2021-09-30 14:17:49.887599|INFO    |Query         |   |listening for query on 0.0.0.0:10222, [::]:10222
2021-09-30 14:17:49.887901|INFO    |Query         |   |listening for ssh query on 0.0.0.0:10111, [::]:10111
2021-09-30 14:17:49.887990|INFO    |Query         |   |listening for http query on 0.0.0.0:10080, [::]:10080
2021-09-30 14:17:49.888090|INFO    |CIDRManager   |   |updated query_ip_allowlist ips: 0.0.0.0/32, 
2021-09-30 14:21:19.789244|CRITICAL|Client        |1  |Assertion "m_ClientDBID.is_assigned()" failed at ../../../../deps/teamspeak_common_lib/src/chanclients/client.cpp:250; 

What could be the problem now? The server stops immediately after the error occurs.
Peace

Maybe the Database you are using, is corrupted or damage or not readeble from the Server or the Script missed some permissions.

I fixed this error because there was a NULL entry in the clients table of the database. But now it says “failed to register local accounting service: No such file or directory” again and the server stops. I completely reinstalled it and it says still the same

Logfile from the freshly installed server:
2021-09-30 16:54:58.580573|INFO |ServerLibPriv | |TeamSpeak 3 Server 3.13.6 (2021-06-09 10:22:37)
2021-09-30 16:54:58.580717|INFO |ServerLibPriv | |SystemInformation: Linux 4.19.0-13-amd64 #1 SMP Debian 4.19.160-2 (2020-11-28) x86_64 Binary: 64bit
2021-09-30 16:54:58.580777|INFO |ServerLibPriv | |Using hardware aes
2021-09-30 16:54:58.581796|INFO |DatabaseQuery | |dbPlugin name: SQLite3 plugin, Version 3, ©TeamSpeak Systems GmbH
2021-09-30 16:54:58.581890|INFO |DatabaseQuery | |dbPlugin version: 3.11.1
2021-09-30 16:54:58.582319|INFO |DatabaseQuery | |checking database integrity (may take a while)
2021-09-30 16:54:58.630134|WARNING |Accounting | |Unable to open licensekey.dat, falling back to limited functionality
2021-09-30 16:54:58.630615|INFO |Accounting | |Licensing Information
2021-09-30 16:54:58.630660|INFO |Accounting | |licensed to : Anonymous
2021-09-30 16:54:58.630680|INFO |Accounting | |type : No License
2021-09-30 16:54:58.630700|INFO |Accounting | |starting date : Thu Oct 1 00:00:00 2020
2021-09-30 16:54:58.630716|INFO |Accounting | |ending date : Tue Nov 1 00:00:00 2022
2021-09-30 16:54:58.630729|INFO |Accounting | |max virtualservers: 1
2021-09-30 16:54:58.630742|INFO |Accounting | |max slots : 32
2021-09-30 16:54:59.413738|INFO | | |Puzzle precompute time: 756
2021-09-30 16:54:59.414186|INFO |FileManager | |listening on 0.0.0.0:30033, [::]:30033
2021-09-30 16:54:59.415959|INFO |Query | |Using a query thread pool size of 2
2021-09-30 16:54:59.513734|INFO |Query | |listening for query on 0.0.0.0:10011, [::]:10011
2021-09-30 16:54:59.513946|INFO |Query | |listening for ssh query on 0.0.0.0:10022, [::]:10022
2021-09-30 16:54:59.514037|INFO |Query | |listening for http query on 0.0.0.0:10080, [::]:10080
2021-09-30 16:54:59.514121|INFO |CIDRManager | |updated query_ip_allowlist ips: 127.0.0.1/32, ::1/128,
2021-09-30 16:55:00.778198|INFO | | |myTeamSpeak identifier revocation list was downloaded successfully - all related features are activated
2021-09-30 16:56:55.146379|ERROR |Accounting | |failed to register local accounting service: No such file or directory

This problem arises when the teamspeak server can not access /dev/shm all the time. Is your shared memory not availible?

Could you explain the shared memory and how can I check the availability of it? There is a file owned by the ts3server in this directory as shown in the uploaded picture.

It is a little bit strange that a simple “push” mark has been flagged by the community if you have a problem with your Teamspeak³ server and no solutions for it. Whatever, I’m here to share my solution with you (and I hope this post won’t get flagged as well :wink:)

The first error appears when the server tries so call a method in the source code with an invalid value. In this case, this value was NULL - a totally empty value but this one cannot appear in the normal use cases. I converted the sqlite database with a tool to mariadb but there were no relationships between the tables; Primary keys were missing as well. And this error appeared only when a certain user connected to the server - and his primary value was NULL in the database.
Note: Do not convert the existing sqlite database to mariadb! Wipe your server and create a new one. Use mariadb directly after the installation!

I don’t know why the second error occured because the server had the permission to access the directory and the file like shown in the screenshot above. I think it was the fault of the corrupt maria database. After a reinstallation and the usage of sqlite, the error still occured - but it disappeared after some server restarts made by lgsm. I don’t know if it was a coincedence but when I disconnected from SSH/SFTP, this error appeared again. But now, it seems to be gone.
Note: Try to restart your server 2x or 3x if this error occurs and check the permissions of the directory and file shown in the screenshot above. If you have to configurate the server files, stop it first.

Last but not least: Make and use backups 'cause they save your day :relaxed: I recommend the usage of YaTQA, a powerful tool for server admins but it works only if you have access to the server query - we call it the S.U.P.E.R.S.E.R.V.E.R.A.D.M.I.N.

I hope this solution will help somebody out there with the same problems. Don’t forget to update your services like mariadb and the distro (in our case: Debian 10 to 11).

Peace :v:

1 Like