• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

TFS 0.X [0.3.6] Assertion '!ret' failed.

super23

Member
Joined
Dec 27, 2013
Messages
98
Reaction score
5
I have setup a linux vmware machine on my windows computer and whenever I try to use my public ip address for the server the following error occurs right after startup.

Bash:
/usr/include/boost/thread/pthread/condition_variable_fwd.hpp:81: boost::condition_variable::~condition_variable(): Assertion `!ret' failed.

I have tried the following but these were not useful:


There is no other TFS running in the background.
I have rebooted my computer aswell.

How can I approach this problem?

Note: this does not happen when I set my local ip or gateway ip.
 
I have tried running it with GDB and got the following report:

Code:
Program received signal SIGABRT, Aborted.
0x00007ffff4859067 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56    ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.

Code:
#0  0x00007ffff4859067 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff485a448 in __GI_abort () at abort.c:89
#2  0x00007ffff4852266 in __assert_fail_base (fmt=0x7ffff498af18 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
    assertion=assertion@entry=0x6d59fd "!ret", file=file@entry=0x6d59c0 "/usr/include/boost/thread/pthread/condition_variable_fwd.hpp",
    line=line@entry=81,
    function=function@entry=0x6d5b40 <boost::condition_variable::~condition_variable()::__PRETTY_FUNCTION__> "boost::condition_variable::~condition_variable()") at assert.c:92
#3  0x00007ffff4852312 in __GI___assert_fail (assertion=0x6d59fd "!ret",
    file=0x6d59c0 "/usr/include/boost/thread/pthread/condition_variable_fwd.hpp", line=81,
    function=0x6d5b40 <boost::condition_variable::~condition_variable()::__PRETTY_FUNCTION__> "boost::condition_variable::~condition_variable()")
    at assert.c:101
#4  0x000000000042d99a in boost::condition_variable::~condition_variable (this=0xa2d728 <Scheduler::getInstance()::scheduler+104>,
    __in_chrg=<optimized out>) at /usr/include/boost/thread/pthread/condition_variable_fwd.hpp:81
#5  0x000000000042e667 in Scheduler::~Scheduler (this=0xa2d6c0 <Scheduler::getInstance()::scheduler>, __in_chrg=<optimized out>) at scheduler.h:62
#6  0x00007ffff485bb29 in __run_exit_handlers (status=0, listp=0x7ffff4bc95a8 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true) at exit.c:82
#7  0x00007ffff485bb75 in __GI_exit (status=<optimized out>) at exit.c:104
#8  0x00007ffff4845b4c in __libc_start_main (main=0x60234a <main(int, char**)>, argc=1, argv=0x7fffffffe358, init=<optimized out>,
    fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe348) at libc-start.c:321
#9  0x000000000041fd99 in _start ()
 
Last edited:
As I remember on 0.3.6 and 0.4 that 'assert' meant 'port 7171 is already in use' - on startup. Try to switch ports to some 7271 and 7272 in config.lua. There is probably other server running.

It's linux, so you can find 'what is running on that port':
Code:
netstat -nalp | grep 7171
It will return something like that (in my case I list teamspeak3 server ports):
tcp 0 0 0.0.0.0:30033 0.0.0.0:* LISTEN 22031/./ts3server
tcp 0 0 0.0.0.0:10011 0.0.0.0:* LISTEN 22031/./ts3server
tcp 0 0 0.0.0.0:10080 0.0.0.0:* LISTEN 22031/./ts3server
tcp 0 0 0.0.0.0:10022 0.0.0.0:* LISTEN 22031/./ts3server
My TS3 server process ID (PID) is 22031. To close it (in your case OTS):
Code:
kill -9 22031

On server close (/shutdown , ctrl+c), it occures almost always. It's related to wrong handling c++ threads in 0.3.6 and 0.4. In case of error on server close, ignore it.
 
Last edited:
I got the same error and it was because I had this line like this
in otserv.cpp
//ipList.push_back(boost::asio::ip::address_v4(INADDR_LOOPBACK));
just remove the //
ipList.push_back(boost::asio::ip::address_v4(INADDR_LOOPBACK));
and this
/*if(ip.size() && !owned)
{
ipList.clear();
ipList.push_back(boost::asio::ip::address_v4(INADDR_ANY));
}*/
to this
if(ip.size() && !owned)
{
ipList.clear();
ipList.push_back(boost::asio::ip::address_v4(INADDR_ANY));
}
 
Back
Top