Skip to content

Instantly share code, notes, and snippets.

@Rochet2
Created July 22, 2015 12:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Rochet2/7ea280d21add3b5edaeb to your computer and use it in GitHub Desktop.
Save Rochet2/7ea280d21add3b5edaeb to your computer and use it in GitHub Desktop.
==3010== Helgrind, a thread error detector
==3010== Copyright (C) 2007-2013, and GNU GPL'd, by OpenWorks LLP et al.
==3010== Using Valgrind-3.10.0.SVN and LibVEX; rerun with -h for copyright info
==3010== Command: ./worldserver
==3010== Parent PID: 2998
==3010==
==3010== ---Thread-Announcement------------------------------------------
==3010==
==3010== Thread #2 was created
==3010== at 0x719E43E: clone (clone.S:74)
==3010== by 0x5BB6199: do_clone.constprop.3 (createthread.c:75)
==3010== by 0x5BB78BA: pthread_create@@GLIBC_2.2.5 (createthread.c:245)
==3010== by 0x4C30C90: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x6935C8E: std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x9B185A: main (thread:135)
==3010==
==3010== ---Thread-Announcement------------------------------------------
==3010==
==3010== Thread #6 was created
==3010== at 0x719E43E: clone (clone.S:74)
==3010== by 0x5BB6199: do_clone.constprop.3 (createthread.c:75)
==3010== by 0x5BB78BA: pthread_create@@GLIBC_2.2.5 (createthread.c:245)
==3010== by 0x4C30C90: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x6935C8E: std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x116574C: DatabaseWorker::DatabaseWorker(ProducerConsumerQueue<SQLOperation*>*, MySQLConnection*) (thread:135)
==3010== by 0x113A78A: MySQLConnection::MySQLConnection(ProducerConsumerQueue<SQLOperation*>*, MySQLConnectionInfo&) (MySQLConnection.cpp:53)
==3010== by 0x1133065: DatabaseWorkerPool<CharacterDatabaseConnection>::Open() (CharacterDatabase.h:29)
==3010== by 0x1133E0C: DatabaseLoader& DatabaseLoader::AddDatabase<CharacterDatabaseConnection>(DatabaseWorkerPool<CharacterDatabaseConnection>&, std::string const&)::{lambda()#1}::operator()() const (DatabaseLoader.cpp:55)
==3010== by 0x112CD56: DatabaseLoader::OpenDatabases() (functional:2471)
==3010== by 0x112D2CD: DatabaseLoader::Load() (DatabaseLoader.cpp:123)
==3010== by 0xA6BDC1: StartDB() (Main.cpp:458)
==3010==
==3010== ----------------------------------------------------------------
==3010==
==3010== Possible data race during write of size 8 at 0x4A5EBD60 by thread #2
==3010== Locks held: none
==3010== at 0xA6EDFC: boost::asio::detail::epoll_reactor::run(bool, boost::asio::detail::op_queue<boost::asio::detail::task_io_service_operation>&) (op_queue.hpp:41)
==3010== by 0xA73259: boost::asio::detail::task_io_service::run(boost::system::error_code&) (task_io_service.ipp:368)
==3010== by 0xA74344: boost::asio::io_service::run() (io_service.ipp:59)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== This conflicts with a previous read of size 4 by thread #6
==3010== Locks held: none
==3010== at 0x11237B0: PreparedStatement::BindParameters() (PreparedStatement.cpp:47)
==3010== by 0x113B8C5: MySQLConnection::Execute(PreparedStatement*) (MySQLConnection.cpp:193)
==3010== by 0x1123D14: PreparedStatementTask::Execute() (PreparedStatement.cpp:478)
==3010== by 0xA80D19: SQLOperation::call() (SQLOperation.h:64)
==3010== by 0x116545A: DatabaseWorker::WorkerThread() (DatabaseWorker.cpp:55)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010==
==3010== Address 0x4A5EBD60 is 0 bytes inside a block of size 152 alloc'd
==3010== at 0x4C2C460: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0xA72EE1: boost::asio::detail::epoll_reactor::register_descriptor(int, boost::asio::detail::epoll_reactor::descriptor_state*&) (object_pool.hpp:35)
==3010== by 0xA74D44: AsyncAcceptor::AsyncAcceptor(boost::asio::io_service&, std::string const&, unsigned short) (reactive_socket_service_base.ipp:152)
==3010== by 0xA7BAC9: SocketMgr<WorldSocket>::StartNetwork(boost::asio::io_service&, std::string const&, unsigned short) (SocketMgr.h:51)
==3010== by 0xECB89B: WorldSocketMgr::StartNetwork(boost::asio::io_service&, std::string const&, unsigned short) (WorldSocketMgr.cpp:67)
==3010== by 0x9B1D66: main (Main.cpp:224)
==3010==
==3010== ----------------------------------------------------------------
==3010==
==3010== Possible data race during write of size 4 at 0x4A5EBD70 by thread #2
==3010== Locks held: none
==3010== at 0xA6EE06: boost::asio::detail::epoll_reactor::run(bool, boost::asio::detail::op_queue<boost::asio::detail::task_io_service_operation>&) (epoll_reactor.hpp:67)
==3010== by 0xA73259: boost::asio::detail::task_io_service::run(boost::system::error_code&) (task_io_service.ipp:368)
==3010== by 0xA74344: boost::asio::io_service::run() (io_service.ipp:59)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== This conflicts with a previous read of size 8 by thread #6
==3010== Locks held: none
==3010== at 0x1120756: PreparedStatementTask::~PreparedStatementTask() (basic_string.h:293)
==3010== by 0x1120AC8: PreparedStatementTask::~PreparedStatementTask() (PreparedStatement.cpp:461)
==3010== by 0x1165464: DatabaseWorker::WorkerThread() (DatabaseWorker.cpp:57)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== Address 0x4A5EBD70 is 16 bytes inside a block of size 152 alloc'd
==3010== at 0x4C2C460: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0xA72EE1: boost::asio::detail::epoll_reactor::register_descriptor(int, boost::asio::detail::epoll_reactor::descriptor_state*&) (object_pool.hpp:35)
==3010== by 0xA74D44: AsyncAcceptor::AsyncAcceptor(boost::asio::io_service&, std::string const&, unsigned short) (reactive_socket_service_base.ipp:152)
==3010== by 0xA7BAC9: SocketMgr<WorldSocket>::StartNetwork(boost::asio::io_service&, std::string const&, unsigned short) (SocketMgr.h:51)
==3010== by 0xECB89B: WorldSocketMgr::StartNetwork(boost::asio::io_service&, std::string const&, unsigned short) (WorldSocketMgr.cpp:67)
==3010== by 0x9B1D66: main (Main.cpp:224)
==3010==
==3010== ----------------------------------------------------------------
==3010==
==3010== Thread #2: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
==3010== at 0x4C2F028: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0xA5F99D: boost::asio::detail::task_io_service::wake_one_thread_and_unlock(boost::asio::detail::scoped_lock<boost::asio::detail::posix_mutex>&) (posix_event.hpp:62)
==3010== by 0xA734EF: boost::asio::detail::task_io_service::run(boost::system::error_code&) (task_io_service.ipp:375)
==3010== by 0xA74344: boost::asio::io_service::run() (io_service.ipp:59)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== ---Thread-Announcement------------------------------------------
==3010==
==3010== Thread #3 was created
==3010== at 0x719E43E: clone (clone.S:74)
==3010== by 0x5BB6199: do_clone.constprop.3 (createthread.c:75)
==3010== by 0x5BB78BA: pthread_create@@GLIBC_2.2.5 (createthread.c:245)
==3010== by 0x4C30C90: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x6935C8E: std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x9B185A: main (thread:135)
==3010==
==3010== ----------------------------------------------------------------
==3010==
==3010== Thread #3: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
==3010== at 0x4C2F028: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0xA5F99D: boost::asio::detail::task_io_service::wake_one_thread_and_unlock(boost::asio::detail::scoped_lock<boost::asio::detail::posix_mutex>&) (posix_event.hpp:62)
==3010== by 0xA734EF: boost::asio::detail::task_io_service::run(boost::system::error_code&) (task_io_service.ipp:375)
==3010== by 0xA74344: boost::asio::io_service::run() (io_service.ipp:59)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== ---Thread-Announcement------------------------------------------
==3010==
==3010== Thread #1 is the program's root thread
==3010==
==3010== ----------------------------------------------------------------
==3010==
==3010== Lock at 0x4A61CFB0 was first observed
==3010== at 0x4C32145: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0xEB8014: WorldSocket::ReadDataHandler() (gthr-default.h:748)
==3010== by 0xEB898A: WorldSocket::ReadHandler() (WorldSocket.cpp:114)
==3010== by 0xEB98F9: boost::asio::detail::reactive_socket_recv_op<boost::asio::mutable_buffers_1, std::_Bind<std::_Mem_fn<void (Socket<WorldSocket>::*)(boost::system::error_code, unsigned long)> (std::shared_ptr<WorldSocket>, std::_Placeholder<1>, std::_Placeholder<2>)> >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) (functional:558)
==3010== by 0xA73483: boost::asio::detail::task_io_service::run(boost::system::error_code&) (task_io_service_operation.hpp:37)
==3010== by 0xA74344: boost::asio::io_service::run() (io_service.ipp:59)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== Possible data race during write of size 4 at 0x4A61F548 by thread #2
==3010== Locks held: 1, at address 0x4A61CFB0
==3010== at 0xEB8057: WorldSocket::ReadDataHandler() (atomic_base.h:474)
==3010== by 0xEB898A: WorldSocket::ReadHandler() (WorldSocket.cpp:114)
==3010== by 0xEB98F9: boost::asio::detail::reactive_socket_recv_op<boost::asio::mutable_buffers_1, std::_Bind<std::_Mem_fn<void (Socket<WorldSocket>::*)(boost::system::error_code, unsigned long)> (std::shared_ptr<WorldSocket>, std::_Placeholder<1>, std::_Placeholder<2>)> >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) (functional:558)
==3010== by 0xA73483: boost::asio::detail::task_io_service::run(boost::system::error_code&) (task_io_service_operation.hpp:37)
==3010== by 0xA74344: boost::asio::io_service::run() (io_service.ipp:59)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== This conflicts with a previous read of size 4 by thread #1
==3010== Locks held: none
==3010== at 0xEC8671: WorldSession::Update(unsigned int, PacketFilter&) (atomic_base.h:428)
==3010== by 0xF73C28: World::UpdateSessions(unsigned int) (World.cpp:2712)
==3010== by 0xF8BDF1: World::Update(unsigned int) (World.cpp:2075)
==3010== by 0xA6A086: WorldUpdateLoop() (Main.cpp:380)
==3010== by 0x9B1F17: main (Main.cpp:242)
==3010==
==3010== Address 0x4A61F548 is 8 bytes inside a block of size 816 alloc'd
==3010== at 0x4C2C460: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0xEB6D27: WorldSocket::HandleAuthSession(WorldPacket&) (WorldSocket.cpp:489)
==3010== by 0xEB8347: WorldSocket::ReadDataHandler() (WorldSocket.cpp:176)
==3010== by 0xEB898A: WorldSocket::ReadHandler() (WorldSocket.cpp:114)
==3010== by 0xEB98F9: boost::asio::detail::reactive_socket_recv_op<boost::asio::mutable_buffers_1, std::_Bind<std::_Mem_fn<void (Socket<WorldSocket>::*)(boost::system::error_code, unsigned long)> (std::shared_ptr<WorldSocket>, std::_Placeholder<1>, std::_Placeholder<2>)> >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) (functional:558)
==3010== by 0xA73483: boost::asio::detail::task_io_service::run(boost::system::error_code&) (task_io_service_operation.hpp:37)
==3010== by 0xA74344: boost::asio::io_service::run() (io_service.ipp:59)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== ----------------------------------------------------------------
==3010==
==3010== Lock at 0x4A61CFB0 was first observed
==3010== at 0x4C32145: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0xEB8014: WorldSocket::ReadDataHandler() (gthr-default.h:748)
==3010== by 0xEB898A: WorldSocket::ReadHandler() (WorldSocket.cpp:114)
==3010== by 0xEB98F9: boost::asio::detail::reactive_socket_recv_op<boost::asio::mutable_buffers_1, std::_Bind<std::_Mem_fn<void (Socket<WorldSocket>::*)(boost::system::error_code, unsigned long)> (std::shared_ptr<WorldSocket>, std::_Placeholder<1>, std::_Placeholder<2>)> >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) (functional:558)
==3010== by 0xA73483: boost::asio::detail::task_io_service::run(boost::system::error_code&) (task_io_service_operation.hpp:37)
==3010== by 0xA74344: boost::asio::io_service::run() (io_service.ipp:59)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== Possible data race during read of size 4 at 0x4A61F548 by thread #1
==3010== Locks held: none
==3010== at 0xEC8671: WorldSession::Update(unsigned int, PacketFilter&) (atomic_base.h:428)
==3010== by 0xF73C28: World::UpdateSessions(unsigned int) (World.cpp:2712)
==3010== by 0xF8BDF1: World::Update(unsigned int) (World.cpp:2075)
==3010== by 0xA6A086: WorldUpdateLoop() (Main.cpp:380)
==3010== by 0x9B1F17: main (Main.cpp:242)
==3010==
==3010== This conflicts with a previous write of size 4 by thread #2
==3010== Locks held: 1, at address 0x4A61CFB0
==3010== at 0xEB8057: WorldSocket::ReadDataHandler() (atomic_base.h:474)
==3010== by 0xEB898A: WorldSocket::ReadHandler() (WorldSocket.cpp:114)
==3010== by 0xEB98F9: boost::asio::detail::reactive_socket_recv_op<boost::asio::mutable_buffers_1, std::_Bind<std::_Mem_fn<void (Socket<WorldSocket>::*)(boost::system::error_code, unsigned long)> (std::shared_ptr<WorldSocket>, std::_Placeholder<1>, std::_Placeholder<2>)> >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) (functional:558)
==3010== by 0xA73483: boost::asio::detail::task_io_service::run(boost::system::error_code&) (task_io_service_operation.hpp:37)
==3010== by 0xA74344: boost::asio::io_service::run() (io_service.ipp:59)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010==
==3010== Address 0x4A61F548 is 8 bytes inside a block of size 816 alloc'd
==3010== at 0x4C2C460: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0xEB6D27: WorldSocket::HandleAuthSession(WorldPacket&) (WorldSocket.cpp:489)
==3010== by 0xEB8347: WorldSocket::ReadDataHandler() (WorldSocket.cpp:176)
==3010== by 0xEB898A: WorldSocket::ReadHandler() (WorldSocket.cpp:114)
==3010== by 0xEB98F9: boost::asio::detail::reactive_socket_recv_op<boost::asio::mutable_buffers_1, std::_Bind<std::_Mem_fn<void (Socket<WorldSocket>::*)(boost::system::error_code, unsigned long)> (std::shared_ptr<WorldSocket>, std::_Placeholder<1>, std::_Placeholder<2>)> >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) (functional:558)
==3010== by 0xA73483: boost::asio::detail::task_io_service::run(boost::system::error_code&) (task_io_service_operation.hpp:37)
==3010== by 0xA74344: boost::asio::io_service::run() (io_service.ipp:59)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== ----------------------------------------------------------------
==3010==
==3010== Thread #6: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
==3010== at 0x4C2F198: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x69324F8: std::condition_variable::notify_all() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x1123E51: PreparedStatementTask::Execute() (future:360)
==3010== by 0xA80D19: SQLOperation::call() (SQLOperation.h:64)
==3010== by 0x116545A: DatabaseWorker::WorkerThread() (DatabaseWorker.cpp:55)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== ---Thread-Announcement------------------------------------------
==3010==
==3010== Thread #5 was created
==3010== at 0x719E43E: clone (clone.S:74)
==3010== by 0x5BB6199: do_clone.constprop.3 (createthread.c:75)
==3010== by 0x5BB78BA: pthread_create@@GLIBC_2.2.5 (createthread.c:245)
==3010== by 0x4C30C90: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x6935C8E: std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x116574C: DatabaseWorker::DatabaseWorker(ProducerConsumerQueue<SQLOperation*>*, MySQLConnection*) (thread:135)
==3010== by 0x113A78A: MySQLConnection::MySQLConnection(ProducerConsumerQueue<SQLOperation*>*, MySQLConnectionInfo&) (MySQLConnection.cpp:53)
==3010== by 0x11302C5: DatabaseWorkerPool<LoginDatabaseConnection>::Open() (LoginDatabase.h:29)
==3010== by 0x1131062: DatabaseLoader& DatabaseLoader::AddDatabase<LoginDatabaseConnection>(DatabaseWorkerPool<LoginDatabaseConnection>&, std::string const&)::{lambda()#1}::operator()() const (DatabaseLoader.cpp:55)
==3010== by 0x112CD56: DatabaseLoader::OpenDatabases() (functional:2471)
==3010== by 0x112D2CD: DatabaseLoader::Load() (DatabaseLoader.cpp:123)
==3010== by 0xA6BDC1: StartDB() (Main.cpp:458)
==3010==
==3010== ----------------------------------------------------------------
==3010==
==3010== Thread #5: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
==3010== at 0x4C2F198: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x69324F8: std::condition_variable::notify_all() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x1123F58: PreparedStatementTask::Execute() (future:360)
==3010== by 0xA80D19: SQLOperation::call() (SQLOperation.h:64)
==3010== by 0x116545A: DatabaseWorker::WorkerThread() (DatabaseWorker.cpp:55)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== ----------------------------------------------------------------
==3010==
==3010== Possible data race during write of size 8 at 0x4A6235E8 by thread #5
==3010== Locks held: none
==3010== at 0x6934A83: std::__future_base::_State_base::~_State_base() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x1120991: PreparedStatementTask::~PreparedStatementTask() (shared_ptr_base.h:144)
==3010== by 0x1120AC8: PreparedStatementTask::~PreparedStatementTask() (PreparedStatement.cpp:461)
==3010== by 0x1165464: DatabaseWorker::WorkerThread() (DatabaseWorker.cpp:57)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== This conflicts with a previous read of size 8 by thread #1
==3010== Locks held: none
==3010== at 0xECA25C: std::future<std::shared_ptr<PreparedResultSet> >::get() (future:325)
==3010== by 0xEC45D3: WorldSession::ProcessQueryCallbacks() (Callback.h:55)
==3010== by 0xEC884F: WorldSession::Update(unsigned int, PacketFilter&) (WorldSession.cpp:403)
==3010== by 0xF73C28: World::UpdateSessions(unsigned int) (World.cpp:2712)
==3010== by 0xF8BDF1: World::Update(unsigned int) (World.cpp:2075)
==3010== by 0xA6A086: WorldUpdateLoop() (Main.cpp:380)
==3010== by 0x9B1F17: main (Main.cpp:242)
==3010==
==3010== Address 0x4A6235E8 is 24 bytes inside a block of size 136 alloc'd
==3010== at 0x4C2C460: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x1123A85: PreparedStatementTask::PreparedStatementTask(PreparedStatement*, bool) (new_allocator.h:104)
==3010== by 0x10B2BF3: WorldSession::HandleCharCreateCallback(std::shared_ptr<PreparedResultSet>, CharacterCreateInfo*) (DatabaseWorkerPool.h:323)
==3010== by 0xEC465F: WorldSession::ProcessQueryCallbacks() (WorldSession.cpp:1107)
==3010== by 0xEC884F: WorldSession::Update(unsigned int, PacketFilter&) (WorldSession.cpp:403)
==3010== by 0xF73C28: World::UpdateSessions(unsigned int) (World.cpp:2712)
==3010== by 0xF8BDF1: World::Update(unsigned int) (World.cpp:2075)
==3010== by 0xA6A086: WorldUpdateLoop() (Main.cpp:380)
==3010== by 0x9B1F17: main (Main.cpp:242)
==3010==
==3010== ----------------------------------------------------------------
==3010==
==3010== Possible data race during read of size 8 at 0x4A2156F8 by thread #5
==3010== Locks held: none
==3010== at 0x1125594: std::__future_base::_Result<std::shared_ptr<PreparedResultSet> >::~_Result() (shared_ptr_base.h:545)
==3010== by 0x6934A99: std::__future_base::_State_base::~_State_base() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x1120991: PreparedStatementTask::~PreparedStatementTask() (shared_ptr_base.h:144)
==3010== by 0x1120AC8: PreparedStatementTask::~PreparedStatementTask() (PreparedStatement.cpp:461)
==3010== by 0x1165464: DatabaseWorker::WorkerThread() (DatabaseWorker.cpp:57)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== This conflicts with a previous write of size 8 by thread #1
==3010== Locks held: none
==3010== at 0xECA305: std::future<std::shared_ptr<PreparedResultSet> >::get() (shared_ptr_base.h:575)
==3010== by 0xEC45D3: WorldSession::ProcessQueryCallbacks() (Callback.h:55)
==3010== by 0xEC884F: WorldSession::Update(unsigned int, PacketFilter&) (WorldSession.cpp:403)
==3010== by 0xF73C28: World::UpdateSessions(unsigned int) (World.cpp:2712)
==3010== by 0xF8BDF1: World::Update(unsigned int) (World.cpp:2075)
==3010== by 0xA6A086: WorldUpdateLoop() (Main.cpp:380)
==3010== by 0x9B1F17: main (Main.cpp:242)
==3010==
==3010== Address 0x4A2156F8 is 24 bytes inside a block of size 40 alloc'd
==3010== at 0x4C2C460: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x1123B22: PreparedStatementTask::PreparedStatementTask(PreparedStatement*, bool) (future:933)
==3010== by 0x10B2BF3: WorldSession::HandleCharCreateCallback(std::shared_ptr<PreparedResultSet>, CharacterCreateInfo*) (DatabaseWorkerPool.h:323)
==3010== by 0xEC465F: WorldSession::ProcessQueryCallbacks() (WorldSession.cpp:1107)
==3010== by 0xEC884F: WorldSession::Update(unsigned int, PacketFilter&) (WorldSession.cpp:403)
==3010== by 0xF73C28: World::UpdateSessions(unsigned int) (World.cpp:2712)
==3010== by 0xF8BDF1: World::Update(unsigned int) (World.cpp:2075)
==3010== by 0xA6A086: WorldUpdateLoop() (Main.cpp:380)
==3010== by 0x9B1F17: main (Main.cpp:242)
==3010==
==3010== ----------------------------------------------------------------
==3010==
==3010== Lock at 0x4A6235F8 was first observed
==3010== at 0x4C32145: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0xECA109: std::future_status std::__future_base::_State_base::wait_for<long, std::ratio<1l, 1l> >(std::chrono::duration<long, std::ratio<1l, 1l> > const&) (gthr-default.h:748)
==3010== by 0xEC3FDC: WorldSession::ProcessQueryCallbacks() (future:579)
==3010== by 0xEC884F: WorldSession::Update(unsigned int, PacketFilter&) (WorldSession.cpp:403)
==3010== by 0xF73C28: World::UpdateSessions(unsigned int) (World.cpp:2712)
==3010== by 0xF8BDF1: World::Update(unsigned int) (World.cpp:2075)
==3010== by 0xA6A086: WorldUpdateLoop() (Main.cpp:380)
==3010== by 0x9B1F17: main (Main.cpp:242)
==3010==
==3010== Possible data race during write of size 8 at 0x4A6235F0 by thread #5
==3010== Locks held: none
==3010== at 0x6934A9A: std::__future_base::_State_base::~_State_base() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x1120991: PreparedStatementTask::~PreparedStatementTask() (shared_ptr_base.h:144)
==3010== by 0x1120AC8: PreparedStatementTask::~PreparedStatementTask() (PreparedStatement.cpp:461)
==3010== by 0x1165464: DatabaseWorker::WorkerThread() (DatabaseWorker.cpp:57)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== This conflicts with a previous read of size 8 by thread #1
==3010== Locks held: 1, at address 0x4A6235F8
==3010== at 0xECA2AD: std::future<std::shared_ptr<PreparedResultSet> >::get() (unique_ptr.h:234)
==3010== by 0xEC45D3: WorldSession::ProcessQueryCallbacks() (Callback.h:55)
==3010== by 0xEC884F: WorldSession::Update(unsigned int, PacketFilter&) (WorldSession.cpp:403)
==3010== by 0xF73C28: World::UpdateSessions(unsigned int) (World.cpp:2712)
==3010== by 0xF8BDF1: World::Update(unsigned int) (World.cpp:2075)
==3010== by 0xA6A086: WorldUpdateLoop() (Main.cpp:380)
==3010== by 0x9B1F17: main (Main.cpp:242)
==3010==
==3010== Address 0x4A6235F0 is 32 bytes inside a block of size 136 alloc'd
==3010== at 0x4C2C460: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x1123A85: PreparedStatementTask::PreparedStatementTask(PreparedStatement*, bool) (new_allocator.h:104)
==3010== by 0x10B2BF3: WorldSession::HandleCharCreateCallback(std::shared_ptr<PreparedResultSet>, CharacterCreateInfo*) (DatabaseWorkerPool.h:323)
==3010== by 0xEC465F: WorldSession::ProcessQueryCallbacks() (WorldSession.cpp:1107)
==3010== by 0xEC884F: WorldSession::Update(unsigned int, PacketFilter&) (WorldSession.cpp:403)
==3010== by 0xF73C28: World::UpdateSessions(unsigned int) (World.cpp:2712)
==3010== by 0xF8BDF1: World::Update(unsigned int) (World.cpp:2075)
==3010== by 0xA6A086: WorldUpdateLoop() (Main.cpp:380)
==3010== by 0x9B1F17: main (Main.cpp:242)
==3010==
==3010== ----------------------------------------------------------------
==3010==
==3010== Thread #6: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
==3010== at 0x4C2F198: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x69324F8: std::condition_variable::notify_all() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x1123F58: PreparedStatementTask::Execute() (future:360)
==3010== by 0xA80D19: SQLOperation::call() (SQLOperation.h:64)
==3010== by 0x116545A: DatabaseWorker::WorkerThread() (DatabaseWorker.cpp:55)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== ----------------------------------------------------------------
==3010==
==3010== Possible data race during read of size 1 at 0x4E72F774 by thread #6
==3010== Locks held: none
==3010== at 0x4C2ECB0: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x4C2F47D: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x6934A8B: std::__future_base::_State_base::~_State_base() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x1120991: PreparedStatementTask::~PreparedStatementTask() (shared_ptr_base.h:144)
==3010== by 0x1120AC8: PreparedStatementTask::~PreparedStatementTask() (PreparedStatement.cpp:461)
==3010== by 0x1165464: DatabaseWorker::WorkerThread() (DatabaseWorker.cpp:57)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== This conflicts with a previous write of size 4 by thread #1
==3010== Locks held: none
==3010== at 0x5BBB705: pthread_cond_timedwait@@GLIBC_2.3.2 (pthread_cond_timedwait.S:138)
==3010== by 0x4C31302: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0xECA18A: std::future_status std::__future_base::_State_base::wait_for<long, std::ratio<1l, 1l> >(std::chrono::duration<long, std::ratio<1l, 1l> > const&) (gthr-default.h:871)
==3010== by 0xEC3FDC: WorldSession::ProcessQueryCallbacks() (future:579)
==3010== by 0xEC884F: WorldSession::Update(unsigned int, PacketFilter&) (WorldSession.cpp:403)
==3010== by 0xF73C28: World::UpdateSessions(unsigned int) (World.cpp:2712)
==3010== by 0xF8BDF1: World::Update(unsigned int) (World.cpp:2075)
==3010== by 0xA6A086: WorldUpdateLoop() (Main.cpp:380)
==3010==
==3010== Address 0x4E72F774 is 84 bytes inside a block of size 136 alloc'd
==3010== at 0x4C2C460: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x1123A85: PreparedStatementTask::PreparedStatementTask(PreparedStatement*, bool) (new_allocator.h:104)
==3010== by 0x10B1C97: WorldSession::HandleCharEnumOpcode(WorldPacket&) (DatabaseWorkerPool.h:323)
==3010== by 0xEC88DD: WorldSession::Update(unsigned int, PacketFilter&) (WorldSession.cpp:364)
==3010== by 0xF73C28: World::UpdateSessions(unsigned int) (World.cpp:2712)
==3010== by 0xF8BDF1: World::Update(unsigned int) (World.cpp:2075)
==3010== by 0xA6A086: WorldUpdateLoop() (Main.cpp:380)
==3010== by 0x9B1F17: main (Main.cpp:242)
==3010==
==3010== ----------------------------------------------------------------
==3010==
==3010== Thread #6: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
==3010== at 0x4C2F198: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x69324F8: std::condition_variable::notify_all() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x11295E0: SQLQueryHolderTask::Execute() (future:360)
==3010== by 0xA80D19: SQLOperation::call() (SQLOperation.h:64)
==3010== by 0x116545A: DatabaseWorker::WorkerThread() (DatabaseWorker.cpp:55)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== ---Thread-Announcement------------------------------------------
==3010==
==3010== Thread #8 was created
==3010== at 0x719E43E: clone (clone.S:74)
==3010== by 0x5BB6199: do_clone.constprop.3 (createthread.c:75)
==3010== by 0x5BB78BA: pthread_create@@GLIBC_2.2.5 (createthread.c:245)
==3010== by 0x4C30C90: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x6935C8E: std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x10C92C1: MapUpdater::activate(unsigned long) (thread:135)
==3010== by 0xF7F000: World::SetInitialWorldSettings() (World.cpp:1826)
==3010== by 0x9B1AB0: main (Main.cpp:195)
==3010==
==3010== ----------------------------------------------------------------
==3010==
==3010== Lock at 0x4A61CFB0 was first observed
==3010== at 0x4C32145: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0xEB8014: WorldSocket::ReadDataHandler() (gthr-default.h:748)
==3010== by 0xEB898A: WorldSocket::ReadHandler() (WorldSocket.cpp:114)
==3010== by 0xEB98F9: boost::asio::detail::reactive_socket_recv_op<boost::asio::mutable_buffers_1, std::_Bind<std::_Mem_fn<void (Socket<WorldSocket>::*)(boost::system::error_code, unsigned long)> (std::shared_ptr<WorldSocket>, std::_Placeholder<1>, std::_Placeholder<2>)> >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) (functional:558)
==3010== by 0xA73483: boost::asio::detail::task_io_service::run(boost::system::error_code&) (task_io_service_operation.hpp:37)
==3010== by 0xA74344: boost::asio::io_service::run() (io_service.ipp:59)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== Possible data race during read of size 4 at 0x4A61F548 by thread #8
==3010== Locks held: none
==3010== at 0xEC8671: WorldSession::Update(unsigned int, PacketFilter&) (atomic_base.h:428)
==3010== by 0xE4348B: Map::Update(unsigned int) (Map.cpp:640)
==3010== by 0x10C901E: MapUpdater::WorkerThread() (MapUpdater.cpp:43)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== This conflicts with a previous write of size 4 by thread #3
==3010== Locks held: 1, at address 0x4A61CFB0
==3010== at 0xEB8057: WorldSocket::ReadDataHandler() (atomic_base.h:474)
==3010== by 0xEB898A: WorldSocket::ReadHandler() (WorldSocket.cpp:114)
==3010== by 0xEB98F9: boost::asio::detail::reactive_socket_recv_op<boost::asio::mutable_buffers_1, std::_Bind<std::_Mem_fn<void (Socket<WorldSocket>::*)(boost::system::error_code, unsigned long)> (std::shared_ptr<WorldSocket>, std::_Placeholder<1>, std::_Placeholder<2>)> >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) (functional:558)
==3010== by 0xA73483: boost::asio::detail::task_io_service::run(boost::system::error_code&) (task_io_service_operation.hpp:37)
==3010== by 0xA74344: boost::asio::io_service::run() (io_service.ipp:59)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010==
==3010== Address 0x4A61F548 is 8 bytes inside a block of size 816 alloc'd
==3010== at 0x4C2C460: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0xEB6D27: WorldSocket::HandleAuthSession(WorldPacket&) (WorldSocket.cpp:489)
==3010== by 0xEB8347: WorldSocket::ReadDataHandler() (WorldSocket.cpp:176)
==3010== by 0xEB898A: WorldSocket::ReadHandler() (WorldSocket.cpp:114)
==3010== by 0xEB98F9: boost::asio::detail::reactive_socket_recv_op<boost::asio::mutable_buffers_1, std::_Bind<std::_Mem_fn<void (Socket<WorldSocket>::*)(boost::system::error_code, unsigned long)> (std::shared_ptr<WorldSocket>, std::_Placeholder<1>, std::_Placeholder<2>)> >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) (functional:558)
==3010== by 0xA73483: boost::asio::detail::task_io_service::run(boost::system::error_code&) (task_io_service_operation.hpp:37)
==3010== by 0xA74344: boost::asio::io_service::run() (io_service.ipp:59)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== ---Thread-Announcement------------------------------------------
==3010==
==3010== Thread #9 was created
==3010== at 0x719E43E: clone (clone.S:74)
==3010== by 0x5BB6199: do_clone.constprop.3 (createthread.c:75)
==3010== by 0x5BB78BA: pthread_create@@GLIBC_2.2.5 (createthread.c:245)
==3010== by 0x4C30C90: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x6935C8E: std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0xA757E1: std::thread::thread<void (&)()>(void (&)()) (thread:135)
==3010== by 0x9B1B17: main (Main.cpp:205)
==3010==
==3010== ----------------------------------------------------------------
==3010==
==3010== Possible data race during write of size 1 at 0x1E9B701 by thread #1
==3010== Locks held: none
==3010== at 0xF5FF80: World::_UpdateGameTime() (atomic_base.h:474)
==3010== by 0xF8BD2A: World::Update(unsigned int) (World.cpp:2026)
==3010== by 0xA6A086: WorldUpdateLoop() (Main.cpp:380)
==3010== by 0x9B1F17: main (Main.cpp:242)
==3010==
==3010== This conflicts with a previous read of size 1 by thread #9
==3010== Locks held: none
==3010== at 0xA5B188: CliThread() (atomic_base.h:496)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== ----------------------------------------------------------------
==3010==
==3010== Possible data race during read of size 1 at 0x1E9B701 by thread #9
==3010== Locks held: none
==3010== at 0xA5B050: cli_hook_func() (atomic_base.h:496)
==3010== by 0x4E671C3: rl_read_key (in /lib/x86_64-linux-gnu/libreadline.so.6.3)
==3010== by 0x4E50EDB: readline_internal_char (in /lib/x86_64-linux-gnu/libreadline.so.6.3)
==3010== by 0x4E51624: readline (in /lib/x86_64-linux-gnu/libreadline.so.6.3)
==3010== by 0xA5B1AC: CliThread() (CliRunnable.cpp:156)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== This conflicts with a previous write of size 1 by thread #1
==3010== Locks held: none
==3010== at 0xF5FF80: World::_UpdateGameTime() (atomic_base.h:474)
==3010== by 0xF8BD2A: World::Update(unsigned int) (World.cpp:2026)
==3010== by 0xA6A086: WorldUpdateLoop() (Main.cpp:380)
==3010== by 0x9B1F17: main (Main.cpp:242)
==3010==
==3010== ----------------------------------------------------------------
==3010==
==3010== Possible data race during read of size 1 at 0x1E9B701 by thread #9
==3010== Locks held: none
==3010== at 0xA5B2CD: CliThread() (atomic_base.h:496)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== This conflicts with a previous write of size 1 by thread #1
==3010== Locks held: none
==3010== at 0xF5FF80: World::_UpdateGameTime() (atomic_base.h:474)
==3010== by 0xF8BD2A: World::Update(unsigned int) (World.cpp:2026)
==3010== by 0xA6A086: WorldUpdateLoop() (Main.cpp:380)
==3010== by 0x9B1F17: main (Main.cpp:242)
==3010==
==3010== ---Thread-Announcement------------------------------------------
==3010==
==3010== Thread #10 was created
==3010== at 0x719E43E: clone (clone.S:74)
==3010== by 0x5BB6199: do_clone.constprop.3 (createthread.c:75)
==3010== by 0x5BB78BA: pthread_create@@GLIBC_2.2.5 (createthread.c:245)
==3010== by 0x4C30C90: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x6935C8E: std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0xA7BBBE: SocketMgr<WorldSocket>::StartNetwork(boost::asio::io_service&, std::string const&, unsigned short) (thread:135)
==3010== by 0xECB89B: WorldSocketMgr::StartNetwork(boost::asio::io_service&, std::string const&, unsigned short) (WorldSocketMgr.cpp:67)
==3010== by 0x9B1D66: main (Main.cpp:224)
==3010==
==3010== ----------------------------------------------------------------
==3010==
==3010== Possible data race during write of size 1 at 0x105EDE94 by thread #1
==3010== Locks held: none
==3010== at 0xECAE67: WorldSocketMgr::StopNetwork() (atomic_base.h:474)
==3010== by 0x9B1F75: main (Main.cpp:255)
==3010==
==3010== This conflicts with a previous read of size 1 by thread #10
==3010== Locks held: none
==3010== at 0xA7CC4B: NetworkThread<WorldSocket>::Run() (atomic_base.h:496)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== Address 0x105EDE94 is 20 bytes inside a block of size 168 alloc'd
==3010== at 0x4C2CB80: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0xECACEB: WorldSocketMgr::CreateThreads() const (WorldSocketMgr.cpp:115)
==3010== by 0xA7BAD8: SocketMgr<WorldSocket>::StartNetwork(boost::asio::io_service&, std::string const&, unsigned short) (SocketMgr.h:59)
==3010== by 0xECB89B: WorldSocketMgr::StartNetwork(boost::asio::io_service&, std::string const&, unsigned short) (WorldSocketMgr.cpp:67)
==3010== by 0x9B1D66: main (Main.cpp:224)
==3010==
==3010== ----------------------------------------------------------------
==3010==
==3010== Possible data race during read of size 1 at 0x105EDE94 by thread #10
==3010== Locks held: none
==3010== at 0xA7CC4B: NetworkThread<WorldSocket>::Run() (atomic_base.h:496)
==3010== by 0x6935A3F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19)
==3010== by 0x4C30E26: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x5BB7181: start_thread (pthread_create.c:312)
==3010== by 0x719E47C: clone (clone.S:111)
==3010==
==3010== This conflicts with a previous write of size 1 by thread #1
==3010== Locks held: none
==3010== at 0xECAE67: WorldSocketMgr::StopNetwork() (atomic_base.h:474)
==3010== by 0x9B1F75: main (Main.cpp:255)
==3010==
==3010== Address 0x105EDE94 is 20 bytes inside a block of size 168 alloc'd
==3010== at 0x4C2CB80: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0xECACEB: WorldSocketMgr::CreateThreads() const (WorldSocketMgr.cpp:115)
==3010== by 0xA7BAD8: SocketMgr<WorldSocket>::StartNetwork(boost::asio::io_service&, std::string const&, unsigned short) (SocketMgr.h:59)
==3010== by 0xECB89B: WorldSocketMgr::StartNetwork(boost::asio::io_service&, std::string const&, unsigned short) (WorldSocketMgr.cpp:67)
==3010== by 0x9B1D66: main (Main.cpp:224)
==3010==
==3010== ----------------------------------------------------------------
==3010==
==3010== Possible data race during write of size 1 at 0x7CBA608 by thread #1
==3010== Locks held: none
==3010== at 0x11655B7: DatabaseWorker::~DatabaseWorker() (atomic_base.h:474)
==3010== by 0x113A7EE: MySQLConnection::~MySQLConnection() (MySQLConnection.cpp:58)
==3010== by 0x116439F: CharacterDatabaseConnection::~CharacterDatabaseConnection() (CharacterDatabase.h:24)
==3010== by 0xA76516: DatabaseWorkerPool<CharacterDatabaseConnection>::Close() (DatabaseWorkerPool.h:115)
==3010== by 0xA6B0FD: StopDB() (Main.cpp:484)
==3010== by 0x9B204E: main (Main.cpp:278)
==3010==
==3010== Address 0x7CBA608 is 24 bytes inside a block of size 32 alloc'd
==3010== at 0x4C2C460: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x113A778: MySQLConnection::MySQLConnection(ProducerConsumerQueue<SQLOperation*>*, MySQLConnectionInfo&) (MySQLConnection.cpp:53)
==3010== by 0x1133065: DatabaseWorkerPool<CharacterDatabaseConnection>::Open() (CharacterDatabase.h:29)
==3010== by 0x1133E0C: DatabaseLoader& DatabaseLoader::AddDatabase<CharacterDatabaseConnection>(DatabaseWorkerPool<CharacterDatabaseConnection>&, std::string const&)::{lambda()#1}::operator()() const (DatabaseLoader.cpp:55)
==3010== by 0x112CD56: DatabaseLoader::OpenDatabases() (functional:2471)
==3010== by 0x112D2CD: DatabaseLoader::Load() (DatabaseLoader.cpp:123)
==3010== by 0xA6BDC1: StartDB() (Main.cpp:458)
==3010== by 0x9B1953: main (Main.cpp:185)
==3010==
==3010== ----------------------------------------------------------------
==3010==
==3010== Possible data race during write of size 1 at 0x7CB9FE8 by thread #1
==3010== Locks held: none
==3010== at 0x11655B7: DatabaseWorker::~DatabaseWorker() (atomic_base.h:474)
==3010== by 0x113A7EE: MySQLConnection::~MySQLConnection() (MySQLConnection.cpp:58)
==3010== by 0x1164BEF: LoginDatabaseConnection::~LoginDatabaseConnection() (LoginDatabase.h:24)
==3010== by 0xA76EF6: DatabaseWorkerPool<LoginDatabaseConnection>::Close() (DatabaseWorkerPool.h:115)
==3010== by 0xA6B111: StopDB() (Main.cpp:486)
==3010== by 0x9B204E: main (Main.cpp:278)
==3010==
==3010== Address 0x7CB9FE8 is 24 bytes inside a block of size 32 alloc'd
==3010== at 0x4C2C460: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==3010== by 0x113A778: MySQLConnection::MySQLConnection(ProducerConsumerQueue<SQLOperation*>*, MySQLConnectionInfo&) (MySQLConnection.cpp:53)
==3010== by 0x11302C5: DatabaseWorkerPool<LoginDatabaseConnection>::Open() (LoginDatabase.h:29)
==3010== by 0x1131062: DatabaseLoader& DatabaseLoader::AddDatabase<LoginDatabaseConnection>(DatabaseWorkerPool<LoginDatabaseConnection>&, std::string const&)::{lambda()#1}::operator()() const (DatabaseLoader.cpp:55)
==3010== by 0x112CD56: DatabaseLoader::OpenDatabases() (functional:2471)
==3010== by 0x112D2CD: DatabaseLoader::Load() (DatabaseLoader.cpp:123)
==3010== by 0xA6BDC1: StartDB() (Main.cpp:458)
==3010== by 0x9B1953: main (Main.cpp:185)
==3010==
==3010==
==3010== For counts of detected and suppressed errors, rerun with: -v
==3010== Use --history-level=approx or =none to gain increased speed, at
==3010== the cost of reduced accuracy of conflicting-access information
==3010== ERROR SUMMARY: 799 errors from 22 contexts (suppressed: 757510 from 1501)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment