-
-
Save Rochet2/7ea280d21add3b5edaeb to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
==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