Valgrind
#21
Could you try running valgrind on MCServer with this world loaded?
http://mc-server.xoft.cz/world/world_crashes_on_load.7z

The world causes the server to crash on me as soon as it starts, but the crash is cryptic, it looks as if memory is being overwritten somewhere prior to the crash.
Reply
Thanks given by:
#22
Sure i should have time tomorrow so i will do this then Smile.

Edit:
Its taking a bit but i do get this
Code:
==15816== Memcheck, a memory error detector
==15816== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==15816== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==15816== Command: ./MCServer
==15816==
==15816== Thread 4:
==15816== Conditional jump or move depends on uninitialised value(s)
==15816==    at 0x63A735: cLightingThread::PropagateLight(unsigned char*, int, int, int&, unsigned char*, unsigned int*) (LightingThread.h:165)
==15816==    by 0x63A4D1: cLightingThread::CalcLightStep(unsigned char*, int, unsigned char*, unsigned int*, int&, unsigned char*, unsigned int*) (LightingThread.cpp:494)
==15816==    by 0x63A23B: cLightingThread::CalcLight(unsigned char*) (LightingThread.cpp:444)
==15816==    by 0x639BD3: cLightingThread::LightChunk(cLightingThread::sItem&) (LightingThread.cpp:275)
==15816==    by 0x639AE2: cLightingThread::Execute() (LightingThread.cpp:247)
==15816==    by 0x64BFD8: cIsThread::thrExecute(void*) (IsThread.h:62)
==15816==    by 0x55DF8C9: start_thread (pthread_create.c:300)
==15816==    by 0x58C4B6C: clone (clone.S:112)
==15816==  Uninitialised value was created by a heap allocation
==15816==    at 0x4C2695A: operator new(unsigned long) (vg_replace_malloc.c:298)
==15816==    by 0x62678F: cRoot::LoadWorlds() (Root.cpp:236)
==15816==    by 0x625F4D: cRoot::Start() (Root.cpp:143)
==15816==    by 0x73136E: main (main.cpp:178)
==15816==
==15816== Conditional jump or move depends on uninitialised value(s)
==15816==    at 0x63A735: cLightingThread::PropagateLight(unsigned char*, int, int, int&, unsigned char*, unsigned int*) (LightingThread.h:165)
==15816==    by 0x63A4D1: cLightingThread::CalcLightStep(unsigned char*, int, unsigned char*, unsigned int*, int&, unsigned char*, unsigned int*) (LightingThread.cpp:494)
==15816==    by 0x63A2C6: cLightingThread::CalcLight(unsigned char*) (LightingThread.cpp:453)
==15816==    by 0x639BD3: cLightingThread::LightChunk(cLightingThread::sItem&) (LightingThread.cpp:275)
==15816==    by 0x639AE2: cLightingThread::Execute() (LightingThread.cpp:247)
==15816==    by 0x64BFD8: cIsThread::thrExecute(void*) (IsThread.h:62)
==15816==    by 0x55DF8C9: start_thread (pthread_create.c:300)
==15816==    by 0x58C4B6C: clone (clone.S:112)
==15816==  Uninitialised value was created by a heap allocation
==15816==    at 0x4C2695A: operator new(unsigned long) (vg_replace_malloc.c:298)
==15816==    by 0x62678F: cRoot::LoadWorlds() (Root.cpp:236)
==15816==    by 0x625F4D: cRoot::Start() (Root.cpp:143)
==15816==    by 0x73136E: main (main.cpp:178)
==15816==

When i try to login i get Failed to login: Error

Edit:
After a while i could login after that i checked the errorlog
Code:
==15816== Thread 5:
==15816== Conditional jump or move depends on uninitialised value(s)
==15816==    at 0x60ED29: deflate_slow (deflate.c:1262)
==15816==    by 0x60F84F: deflate (deflate.c:903)
==15816==    by 0x60CDD3: compress2 (compress.c:49)
==15816==    by 0x69D010: CompressString(char const*, int, std::string&) (StringCompression.cpp:23)
==15816==    by 0x6AAF21: cWSSAnvil::SaveChunkToData(cChunkCoords const&, std::string&) (WSSAnvil.cpp:452)
==15816==    by 0x6AA875: cWSSAnvil::SaveChunk(cChunkCoords const&) (WSSAnvil.cpp:313)
==15816==    by 0x6A8350: cWorldStorage::SaveOneChunk() (WorldStorage.cpp:355)
==15816==    by 0x6A8021: cWorldStorage::Execute() (WorldStorage.cpp:286)
==15816==    by 0x64BFD8: cIsThread::thrExecute(void*) (IsThread.h:62)
==15816==    by 0x55DF8C9: start_thread (pthread_create.c:300)
==15816==    by 0x58C4B6C: clone (clone.S:112)
==15816==  Uninitialised value was created by a heap allocation
==15816==    at 0x4C2695A: operator new(unsigned long) (vg_replace_malloc.c:298)
==15816==    by 0x6F155D: cChunkMap::cChunkLayer::GetChunk(int, int, int) (ChunkMap.cpp:1789)
==15816==    by 0x6EC1C0: cChunkMap::GetChunkNoGen(int, int, int) (ChunkMap.cpp:134)
==15816==    by 0x6EF560: cChunkMap::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (ChunkMap.cpp:1150)
==15816==    by 0x6BD82D: cWorld::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (World.cpp:1897)
==15816==    by 0x6CA853: cEntity::MoveToCorrectChunk(bool) (Entity.cpp:142)
==15816==    by 0x6CA561: cEntity::Initialize(cWorld*) (Entity.cpp:84)
==15816==    by 0x63F1E4: cPlayer::Initialize(cWorld*) (Player.cpp:128)
==15816==    by 0x62EE2B: cClientHandle::Authenticate() (ClientHandle.cpp:257)
==15816==    by 0x6DC52D: cServer::AuthenticateUser(int) (Server.cpp:641)
==15816==    by 0x627013: cRoot::AuthenticateUser(int) (Root.cpp:385)
==15816==    by 0x62AAC8: cAuthenticator::Execute() (Authenticator.cpp:144)
==15816==
==15816== Conditional jump or move depends on uninitialised value(s)
==15816==    at 0x60ED38: deflate_slow (deflate.c:1262)
==15816==    by 0x60F84F: deflate (deflate.c:903)
==15816==    by 0x60CDD3: compress2 (compress.c:49)
==15816==    by 0x69D010: CompressString(char const*, int, std::string&) (StringCompression.cpp:23)
==15816==    by 0x6AAF21: cWSSAnvil::SaveChunkToData(cChunkCoords const&, std::string&) (WSSAnvil.cpp:452)
==15816==    by 0x6AA875: cWSSAnvil::SaveChunk(cChunkCoords const&) (WSSAnvil.cpp:313)
==15816==    by 0x6A8350: cWorldStorage::SaveOneChunk() (WorldStorage.cpp:355)
==15816==    by 0x6A8021: cWorldStorage::Execute() (WorldStorage.cpp:286)
==15816==    by 0x64BFD8: cIsThread::thrExecute(void*) (IsThread.h:62)
==15816==    by 0x55DF8C9: start_thread (pthread_create.c:300)
==15816==    by 0x58C4B6C: clone (clone.S:112)
==15816==  Uninitialised value was created by a heap allocation
==15816==    at 0x4C2695A: operator new(unsigned long) (vg_replace_malloc.c:298)
==15816==    by 0x6F155D: cChunkMap::cChunkLayer::GetChunk(int, int, int) (ChunkMap.cpp:1789)
==15816==    by 0x6EC1C0: cChunkMap::GetChunkNoGen(int, int, int) (ChunkMap.cpp:134)
==15816==    by 0x6EF560: cChunkMap::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (ChunkMap.cpp:1150)
==15816==    by 0x6BD82D: cWorld::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (World.cpp:1897)
==15816==    by 0x6CA853: cEntity::MoveToCorrectChunk(bool) (Entity.cpp:142)
==15816==    by 0x6CA561: cEntity::Initialize(cWorld*) (Entity.cpp:84)
==15816==    by 0x63F1E4: cPlayer::Initialize(cWorld*) (Player.cpp:128)
==15816==    by 0x62EE2B: cClientHandle::Authenticate() (ClientHandle.cpp:257)
==15816==    by 0x6DC52D: cServer::AuthenticateUser(int) (Server.cpp:641)
==15816==    by 0x627013: cRoot::AuthenticateUser(int) (Root.cpp:385)
==15816==    by 0x62AAC8: cAuthenticator::Execute() (Authenticator.cpp:144)
==15816==
==15816== Conditional jump or move depends on uninitialised value(s)
==15816==    at 0x60ED47: deflate_slow (deflate.c:1262)
==15816==    by 0x60F84F: deflate (deflate.c:903)
==15816==    by 0x60CDD3: compress2 (compress.c:49)
==15816==    by 0x69D010: CompressString(char const*, int, std::string&) (StringCompression.cpp:23)
==15816==    by 0x6AAF21: cWSSAnvil::SaveChunkToData(cChunkCoords const&, std::string&) (WSSAnvil.cpp:452)
==15816==    by 0x6AA875: cWSSAnvil::SaveChunk(cChunkCoords const&) (WSSAnvil.cpp:313)
==15816==    by 0x6A8350: cWorldStorage::SaveOneChunk() (WorldStorage.cpp:355)
==15816==    by 0x6A8021: cWorldStorage::Execute() (WorldStorage.cpp:286)
==15816==    by 0x64BFD8: cIsThread::thrExecute(void*) (IsThread.h:62)
==15816==    by 0x55DF8C9: start_thread (pthread_create.c:300)
==15816==    by 0x58C4B6C: clone (clone.S:112)
==15816==  Uninitialised value was created by a heap allocation
==15816==    at 0x4C2695A: operator new(unsigned long) (vg_replace_malloc.c:298)
==15816==    by 0x6F155D: cChunkMap::cChunkLayer::GetChunk(int, int, int) (ChunkMap.cpp:1789)
==15816==    by 0x6EC1C0: cChunkMap::GetChunkNoGen(int, int, int) (ChunkMap.cpp:134)
==15816==    by 0x6EF560: cChunkMap::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (ChunkMap.cpp:1150)
==15816==    by 0x6BD82D: cWorld::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (World.cpp:1897)
==15816==    by 0x6CA853: cEntity::MoveToCorrectChunk(bool) (Entity.cpp:142)
==15816==    by 0x6CA561: cEntity::Initialize(cWorld*) (Entity.cpp:84)
==15816==    by 0x63F1E4: cPlayer::Initialize(cWorld*) (Player.cpp:128)
==15816==    by 0x62EE2B: cClientHandle::Authenticate() (ClientHandle.cpp:257)
==15816==    by 0x6DC52D: cServer::AuthenticateUser(int) (Server.cpp:641)
==15816==    by 0x627013: cRoot::AuthenticateUser(int) (Root.cpp:385)
==15816==    by 0x62AAC8: cAuthenticator::Execute() (Authenticator.cpp:144)
==15816==
==15816== Conditional jump or move depends on uninitialised value(s)
==15816==    at 0x60ED56: deflate_slow (deflate.c:1262)
==15816==    by 0x60F84F: deflate (deflate.c:903)
==15816==    by 0x60CDD3: compress2 (compress.c:49)
==15816==    by 0x69D010: CompressString(char const*, int, std::string&) (StringCompression.cpp:23)
==15816==    by 0x6AAF21: cWSSAnvil::SaveChunkToData(cChunkCoords const&, std::string&) (WSSAnvil.cpp:452)
==15816==    by 0x6AA875: cWSSAnvil::SaveChunk(cChunkCoords const&) (WSSAnvil.cpp:313)
==15816==    by 0x6A8350: cWorldStorage::SaveOneChunk() (WorldStorage.cpp:355)
==15816==    by 0x6A8021: cWorldStorage::Execute() (WorldStorage.cpp:286)
==15816==    by 0x64BFD8: cIsThread::thrExecute(void*) (IsThread.h:62)
==15816==    by 0x55DF8C9: start_thread (pthread_create.c:300)
==15816==    by 0x58C4B6C: clone (clone.S:112)
==15816==  Uninitialised value was created by a heap allocation
==15816==    at 0x4C2695A: operator new(unsigned long) (vg_replace_malloc.c:298)
==15816==    by 0x6F155D: cChunkMap::cChunkLayer::GetChunk(int, int, int) (ChunkMap.cpp:1789)
==15816==    by 0x6EC1C0: cChunkMap::GetChunkNoGen(int, int, int) (ChunkMap.cpp:134)
==15816==    by 0x6EF560: cChunkMap::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (ChunkMap.cpp:1150)
==15816==    by 0x6BD82D: cWorld::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (World.cpp:1897)
==15816==    by 0x6CA853: cEntity::MoveToCorrectChunk(bool) (Entity.cpp:142)
==15816==    by 0x6CA561: cEntity::Initialize(cWorld*) (Entity.cpp:84)
==15816==    by 0x63F1E4: cPlayer::Initialize(cWorld*) (Player.cpp:128)
==15816==    by 0x62EE2B: cClientHandle::Authenticate() (ClientHandle.cpp:257)
==15816==    by 0x6DC52D: cServer::AuthenticateUser(int) (Server.cpp:641)
==15816==    by 0x627013: cRoot::AuthenticateUser(int) (Root.cpp:385)
==15816==    by 0x62AAC8: cAuthenticator::Execute() (Authenticator.cpp:144)
==15816==
==15816== Conditional jump or move depends on uninitialised value(s)
==15816==    at 0x60ED65: deflate_slow (deflate.c:1262)
==15816==    by 0x60F84F: deflate (deflate.c:903)
==15816==    by 0x60CDD3: compress2 (compress.c:49)
==15816==    by 0x69D010: CompressString(char const*, int, std::string&) (StringCompression.cpp:23)
==15816==    by 0x6AAF21: cWSSAnvil::SaveChunkToData(cChunkCoords const&, std::string&) (WSSAnvil.cpp:452)
==15816==    by 0x6AA875: cWSSAnvil::SaveChunk(cChunkCoords const&) (WSSAnvil.cpp:313)
==15816==    by 0x6A8350: cWorldStorage::SaveOneChunk() (WorldStorage.cpp:355)
==15816==    by 0x6A8021: cWorldStorage::Execute() (WorldStorage.cpp:286)
==15816==    by 0x64BFD8: cIsThread::thrExecute(void*) (IsThread.h:62)
==15816==    by 0x55DF8C9: start_thread (pthread_create.c:300)
==15816==    by 0x58C4B6C: clone (clone.S:112)
==15816==  Uninitialised value was created by a heap allocation
==15816==    at 0x4C2695A: operator new(unsigned long) (vg_replace_malloc.c:298)
==15816==    by 0x6F155D: cChunkMap::cChunkLayer::GetChunk(int, int, int) (ChunkMap.cpp:1789)
==15816==    by 0x6EC1C0: cChunkMap::GetChunkNoGen(int, int, int) (ChunkMap.cpp:134)
==15816==    by 0x6EF560: cChunkMap::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (ChunkMap.cpp:1150)
==15816==    by 0x6BD82D: cWorld::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (World.cpp:1897)
==15816==    by 0x6CA853: cEntity::MoveToCorrectChunk(bool) (Entity.cpp:142)
==15816==    by 0x6CA561: cEntity::Initialize(cWorld*) (Entity.cpp:84)
==15816==    by 0x63F1E4: cPlayer::Initialize(cWorld*) (Player.cpp:128)
==15816==    by 0x62EE2B: cClientHandle::Authenticate() (ClientHandle.cpp:257)
==15816==    by 0x6DC52D: cServer::AuthenticateUser(int) (Server.cpp:641)
==15816==    by 0x627013: cRoot::AuthenticateUser(int) (Root.cpp:385)
==15816==    by 0x62AAC8: cAuthenticator::Execute() (Authenticator.cpp:144)
==15816==
==15816== Conditional jump or move depends on uninitialised value(s)
==15816==    at 0x60ED74: deflate_slow (deflate.c:1262)
==15816==    by 0x60F84F: deflate (deflate.c:903)
==15816==    by 0x60CDD3: compress2 (compress.c:49)
==15816==    by 0x69D010: CompressString(char const*, int, std::string&) (StringCompression.cpp:23)
==15816==    by 0x6AAF21: cWSSAnvil::SaveChunkToData(cChunkCoords const&, std::string&) (WSSAnvil.cpp:452)
==15816==    by 0x6AA875: cWSSAnvil::SaveChunk(cChunkCoords const&) (WSSAnvil.cpp:313)
==15816==    by 0x6A8350: cWorldStorage::SaveOneChunk() (WorldStorage.cpp:355)
==15816==    by 0x6A8021: cWorldStorage::Execute() (WorldStorage.cpp:286)
==15816==    by 0x64BFD8: cIsThread::thrExecute(void*) (IsThread.h:62)
==15816==    by 0x55DF8C9: start_thread (pthread_create.c:300)
==15816==    by 0x58C4B6C: clone (clone.S:112)
==15816==  Uninitialised value was created by a heap allocation
==15816==    at 0x4C2695A: operator new(unsigned long) (vg_replace_malloc.c:298)
==15816==    by 0x6F155D: cChunkMap::cChunkLayer::GetChunk(int, int, int) (ChunkMap.cpp:1789)
==15816==    by 0x6EC1C0: cChunkMap::GetChunkNoGen(int, int, int) (ChunkMap.cpp:134)
==15816==    by 0x6EF560: cChunkMap::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (ChunkMap.cpp:1150)
==15816==    by 0x6BD82D: cWorld::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (World.cpp:1897)
==15816==    by 0x6CA853: cEntity::MoveToCorrectChunk(bool) (Entity.cpp:142)
==15816==    by 0x6CA561: cEntity::Initialize(cWorld*) (Entity.cpp:84)
==15816==    by 0x63F1E4: cPlayer::Initialize(cWorld*) (Player.cpp:128)
==15816==    by 0x62EE2B: cClientHandle::Authenticate() (ClientHandle.cpp:257)
==15816==    by 0x6DC52D: cServer::AuthenticateUser(int) (Server.cpp:641)
==15816==    by 0x627013: cRoot::AuthenticateUser(int) (Root.cpp:385)
==15816==    by 0x62AAC8: cAuthenticator::Execute() (Authenticator.cpp:144)
==15816==
==15816== Conditional jump or move depends on uninitialised value(s)
==15816==    at 0x60ED86: deflate_slow (deflate.c:1262)
==15816==    by 0x60F84F: deflate (deflate.c:903)
==15816==    by 0x60CDD3: compress2 (compress.c:49)
==15816==    by 0x69D010: CompressString(char const*, int, std::string&) (StringCompression.cpp:23)
==15816==    by 0x6AAF21: cWSSAnvil::SaveChunkToData(cChunkCoords const&, std::string&) (WSSAnvil.cpp:452)
==15816==    by 0x6AA875: cWSSAnvil::SaveChunk(cChunkCoords const&) (WSSAnvil.cpp:313)
==15816==    by 0x6A8350: cWorldStorage::SaveOneChunk() (WorldStorage.cpp:355)
==15816==    by 0x6A8021: cWorldStorage::Execute() (WorldStorage.cpp:286)
==15816==    by 0x64BFD8: cIsThread::thrExecute(void*) (IsThread.h:62)
==15816==    by 0x55DF8C9: start_thread (pthread_create.c:300)
==15816==    by 0x58C4B6C: clone (clone.S:112)
==15816==  Uninitialised value was created by a heap allocation
==15816==    at 0x4C2695A: operator new(unsigned long) (vg_replace_malloc.c:298)
==15816==    by 0x6F155D: cChunkMap::cChunkLayer::GetChunk(int, int, int) (ChunkMap.cpp:1789)
==15816==    by 0x6EC1C0: cChunkMap::GetChunkNoGen(int, int, int) (ChunkMap.cpp:134)
==15816==    by 0x6EF560: cChunkMap::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (ChunkMap.cpp:1150)
==15816==    by 0x6BD82D: cWorld::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (World.cpp:1897)
==15816==    by 0x6CA853: cEntity::MoveToCorrectChunk(bool) (Entity.cpp:142)
==15816==    by 0x6CA561: cEntity::Initialize(cWorld*) (Entity.cpp:84)
==15816==    by 0x63F1E4: cPlayer::Initialize(cWorld*) (Player.cpp:128)
==15816==    by 0x62EE2B: cClientHandle::Authenticate() (ClientHandle.cpp:257)
==15816==    by 0x6DC52D: cServer::AuthenticateUser(int) (Server.cpp:641)
==15816==    by 0x627013: cRoot::AuthenticateUser(int) (Root.cpp:385)
==15816==    by 0x62AAC8: cAuthenticator::Execute() (Authenticator.cpp:144)
==15816==
==15816== Conditional jump or move depends on uninitialised value(s)
==15816==    at 0x60ED9F: deflate_slow (deflate.c:1262)
==15816==    by 0x60F84F: deflate (deflate.c:903)
==15816==    by 0x60CDD3: compress2 (compress.c:49)
==15816==    by 0x69D010: CompressString(char const*, int, std::string&) (StringCompression.cpp:23)
==15816==    by 0x6AAF21: cWSSAnvil::SaveChunkToData(cChunkCoords const&, std::string&) (WSSAnvil.cpp:452)
==15816==    by 0x6AA875: cWSSAnvil::SaveChunk(cChunkCoords const&) (WSSAnvil.cpp:313)
==15816==    by 0x6A8350: cWorldStorage::SaveOneChunk() (WorldStorage.cpp:355)
==15816==    by 0x6A8021: cWorldStorage::Execute() (WorldStorage.cpp:286)
==15816==    by 0x64BFD8: cIsThread::thrExecute(void*) (IsThread.h:62)
==15816==    by 0x55DF8C9: start_thread (pthread_create.c:300)
==15816==    by 0x58C4B6C: clone (clone.S:112)
==15816==  Uninitialised value was created by a heap allocation
==15816==    at 0x4C2695A: operator new(unsigned long) (vg_replace_malloc.c:298)
==15816==    by 0x6F155D: cChunkMap::cChunkLayer::GetChunk(int, int, int) (ChunkMap.cpp:1789)
==15816==    by 0x6EC1C0: cChunkMap::GetChunkNoGen(int, int, int) (ChunkMap.cpp:134)
==15816==    by 0x6EF560: cChunkMap::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (ChunkMap.cpp:1150)
==15816==    by 0x6BD82D: cWorld::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (World.cpp:1897)
==15816==    by 0x6CA853: cEntity::MoveToCorrectChunk(bool) (Entity.cpp:142)
==15816==    by 0x6CA561: cEntity::Initialize(cWorld*) (Entity.cpp:84)
==15816==    by 0x63F1E4: cPlayer::Initialize(cWorld*) (Player.cpp:128)
==15816==    by 0x62EE2B: cClientHandle::Authenticate() (ClientHandle.cpp:257)
==15816==    by 0x6DC52D: cServer::AuthenticateUser(int) (Server.cpp:641)
==15816==    by 0x627013: cRoot::AuthenticateUser(int) (Root.cpp:385)
==15816==    by 0x62AAC8: cAuthenticator::Execute() (Authenticator.cpp:144)
==15816==
==15816== Use of uninitialised value of size 8
==15816==    at 0x60E865: deflate_slow (deflate.c:1806)
==15816==    by 0x60F84F: deflate (deflate.c:903)
==15816==    by 0x60CDD3: compress2 (compress.c:49)
==15816==    by 0x69D010: CompressString(char const*, int, std::string&) (StringCompression.cpp:23)
==15816==    by 0x6AAF21: cWSSAnvil::SaveChunkToData(cChunkCoords const&, std::string&) (WSSAnvil.cpp:452)
==15816==    by 0x6AA875: cWSSAnvil::SaveChunk(cChunkCoords const&) (WSSAnvil.cpp:313)
==15816==    by 0x6A8350: cWorldStorage::SaveOneChunk() (WorldStorage.cpp:355)
==15816==    by 0x6A8021: cWorldStorage::Execute() (WorldStorage.cpp:286)
==15816==    by 0x64BFD8: cIsThread::thrExecute(void*) (IsThread.h:62)
==15816==    by 0x55DF8C9: start_thread (pthread_create.c:300)
==15816==    by 0x58C4B6C: clone (clone.S:112)
==15816==  Uninitialised value was created by a heap allocation
==15816==    at 0x4C2695A: operator new(unsigned long) (vg_replace_malloc.c:298)
==15816==    by 0x6F155D: cChunkMap::cChunkLayer::GetChunk(int, int, int) (ChunkMap.cpp:1789)
==15816==    by 0x6EC1C0: cChunkMap::GetChunkNoGen(int, int, int) (ChunkMap.cpp:134)
==15816==    by 0x6EF560: cChunkMap::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (ChunkMap.cpp:1150)
==15816==    by 0x6BD82D: cWorld::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (World.cpp:1897)
==15816==    by 0x6CA853: cEntity::MoveToCorrectChunk(bool) (Entity.cpp:142)
==15816==    by 0x6CA561: cEntity::Initialize(cWorld*) (Entity.cpp:84)
==15816==    by 0x63F1E4: cPlayer::Initialize(cWorld*) (Player.cpp:128)
==15816==    by 0x62EE2B: cClientHandle::Authenticate() (ClientHandle.cpp:257)
==15816==    by 0x6DC52D: cServer::AuthenticateUser(int) (Server.cpp:641)
==15816==    by 0x627013: cRoot::AuthenticateUser(int) (Root.cpp:385)
==15816==    by 0x62AAC8: cAuthenticator::Execute() (Authenticator.cpp:144)
==15816==
==15816== Use of uninitialised value of size 8
==15816==    at 0x60E86F: deflate_slow (deflate.c:1806)
==15816==    by 0x60F84F: deflate (deflate.c:903)
==15816==    by 0x60CDD3: compress2 (compress.c:49)
==15816==    by 0x69D010: CompressString(char const*, int, std::string&) (StringCompression.cpp:23)
==15816==    by 0x6AAF21: cWSSAnvil::SaveChunkToData(cChunkCoords const&, std::string&) (WSSAnvil.cpp:452)
==15816==    by 0x6AA875: cWSSAnvil::SaveChunk(cChunkCoords const&) (WSSAnvil.cpp:313)
==15816==    by 0x6A8350: cWorldStorage::SaveOneChunk() (WorldStorage.cpp:355)
==15816==    by 0x6A8021: cWorldStorage::Execute() (WorldStorage.cpp:286)
==15816==    by 0x64BFD8: cIsThread::thrExecute(void*) (IsThread.h:62)
==15816==    by 0x55DF8C9: start_thread (pthread_create.c:300)
==15816==    by 0x58C4B6C: clone (clone.S:112)
==15816==  Uninitialised value was created by a heap allocation
==15816==    at 0x4C2695A: operator new(unsigned long) (vg_replace_malloc.c:298)
==15816==    by 0x6F155D: cChunkMap::cChunkLayer::GetChunk(int, int, int) (ChunkMap.cpp:1789)
==15816==    by 0x6EC1C0: cChunkMap::GetChunkNoGen(int, int, int) (ChunkMap.cpp:134)
==15816==    by 0x6EF560: cChunkMap::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (ChunkMap.cpp:1150)
==15816==    by 0x6BD82D: cWorld::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (World.cpp:1897)
==15816==    by 0x6CA853: cEntity::MoveToCorrectChunk(bool) (Entity.cpp:142)
==15816==    by 0x6CA561: cEntity::Initialize(cWorld*) (Entity.cpp:84)
==15816==    by 0x63F1E4: cPlayer::Initialize(cWorld*) (Player.cpp:128)
==15816==    by 0x62EE2B: cClientHandle::Authenticate() (ClientHandle.cpp:257)
==15816==    by 0x6DC52D: cServer::AuthenticateUser(int) (Server.cpp:641)
==15816==    by 0x627013: cRoot::AuthenticateUser(int) (Root.cpp:385)
==15816==    by 0x62AAC8: cAuthenticator::Execute() (Authenticator.cpp:144)
==15816==
==15816== Use of uninitialised value of size 8
==15816==    at 0x60E704: deflate_slow (deflate.c:1755)
==15816==    by 0x60F84F: deflate (deflate.c:903)
==15816==    by 0x60CDD3: compress2 (compress.c:49)
==15816==    by 0x69D010: CompressString(char const*, int, std::string&) (StringCompression.cpp:23)
==15816==    by 0x6AAF21: cWSSAnvil::SaveChunkToData(cChunkCoords const&, std::string&) (WSSAnvil.cpp:452)
==15816==    by 0x6AA875: cWSSAnvil::SaveChunk(cChunkCoords const&) (WSSAnvil.cpp:313)
==15816==    by 0x6A8350: cWorldStorage::SaveOneChunk() (WorldStorage.cpp:355)
==15816==    by 0x6A8021: cWorldStorage::Execute() (WorldStorage.cpp:286)
==15816==    by 0x64BFD8: cIsThread::thrExecute(void*) (IsThread.h:62)
==15816==    by 0x55DF8C9: start_thread (pthread_create.c:300)
==15816==    by 0x58C4B6C: clone (clone.S:112)
==15816==  Uninitialised value was created by a heap allocation
==15816==    at 0x4C2695A: operator new(unsigned long) (vg_replace_malloc.c:298)
==15816==    by 0x6F155D: cChunkMap::cChunkLayer::GetChunk(int, int, int) (ChunkMap.cpp:1789)
==15816==    by 0x6EC1C0: cChunkMap::GetChunkNoGen(int, int, int) (ChunkMap.cpp:134)
==15816==    by 0x6EF560: cChunkMap::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (ChunkMap.cpp:1150)
==15816==    by 0x6BD82D: cWorld::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (World.cpp:1897)
==15816==    by 0x6CA853: cEntity::MoveToCorrectChunk(bool) (Entity.cpp:142)
==15816==    by 0x6CA561: cEntity::Initialize(cWorld*) (Entity.cpp:84)
==15816==    by 0x63F1E4: cPlayer::Initialize(cWorld*) (Player.cpp:128)
==15816==    by 0x62EE2B: cClientHandle::Authenticate() (ClientHandle.cpp:257)
==15816==    by 0x6DC52D: cServer::AuthenticateUser(int) (Server.cpp:641)
==15816==    by 0x627013: cRoot::AuthenticateUser(int) (Root.cpp:385)
==15816==    by 0x62AAC8: cAuthenticator::Execute() (Authenticator.cpp:144)
==15816==
==15816== Conditional jump or move depends on uninitialised value(s)
==15816==    at 0x60EB88: deflate_slow (deflate.c:1240)
==15816==    by 0x60F84F: deflate (deflate.c:903)
==15816==    by 0x60CDD3: compress2 (compress.c:49)
==15816==    by 0x69D010: CompressString(char const*, int, std::string&) (StringCompression.cpp:23)
==15816==    by 0x6AAF21: cWSSAnvil::SaveChunkToData(cChunkCoords const&, std::string&) (WSSAnvil.cpp:452)
==15816==    by 0x6AA875: cWSSAnvil::SaveChunk(cChunkCoords const&) (WSSAnvil.cpp:313)
==15816==    by 0x6A8350: cWorldStorage::SaveOneChunk() (WorldStorage.cpp:355)
==15816==    by 0x6A8021: cWorldStorage::Execute() (WorldStorage.cpp:286)
==15816==    by 0x64BFD8: cIsThread::thrExecute(void*) (IsThread.h:62)
==15816==    by 0x55DF8C9: start_thread (pthread_create.c:300)
==15816==    by 0x58C4B6C: clone (clone.S:112)
==15816==  Uninitialised value was created by a heap allocation
==15816==    at 0x4C2695A: operator new(unsigned long) (vg_replace_malloc.c:298)
==15816==    by 0x6F155D: cChunkMap::cChunkLayer::GetChunk(int, int, int) (ChunkMap.cpp:1789)
==15816==    by 0x6EC1C0: cChunkMap::GetChunkNoGen(int, int, int) (ChunkMap.cpp:134)
==15816==    by 0x6EF560: cChunkMap::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (ChunkMap.cpp:1150)
==15816==    by 0x6BD82D: cWorld::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (World.cpp:1897)
==15816==    by 0x6CA853: cEntity::MoveToCorrectChunk(bool) (Entity.cpp:142)
==15816==    by 0x6CA561: cEntity::Initialize(cWorld*) (Entity.cpp:84)
==15816==    by 0x63F1E4: cPlayer::Initialize(cWorld*) (Player.cpp:128)
==15816==    by 0x62EE2B: cClientHandle::Authenticate() (ClientHandle.cpp:257)
==15816==    by 0x6DC52D: cServer::AuthenticateUser(int) (Server.cpp:641)
==15816==    by 0x627013: cRoot::AuthenticateUser(int) (Root.cpp:385)
==15816==    by 0x62AAC8: cAuthenticator::Execute() (Authenticator.cpp:144)
==15816==
==15816== Conditional jump or move depends on uninitialised value(s)
==15816==    at 0x60EB93: deflate_slow (deflate.c:1240)
==15816==    by 0x60F84F: deflate (deflate.c:903)
==15816==    by 0x60CDD3: compress2 (compress.c:49)
==15816==    by 0x69D010: CompressString(char const*, int, std::string&) (StringCompression.cpp:23)
==15816==    by 0x6AAF21: cWSSAnvil::SaveChunkToData(cChunkCoords const&, std::string&) (WSSAnvil.cpp:452)
==15816==    by 0x6AA875: cWSSAnvil::SaveChunk(cChunkCoords const&) (WSSAnvil.cpp:313)
==15816==    by 0x6A8350: cWorldStorage::SaveOneChunk() (WorldStorage.cpp:355)
==15816==    by 0x6A8021: cWorldStorage::Execute() (WorldStorage.cpp:286)
==15816==    by 0x64BFD8: cIsThread::thrExecute(void*) (IsThread.h:62)
==15816==    by 0x55DF8C9: start_thread (pthread_create.c:300)
==15816==    by 0x58C4B6C: clone (clone.S:112)
==15816==  Uninitialised value was created by a heap allocation
==15816==    at 0x4C2695A: operator new(unsigned long) (vg_replace_malloc.c:298)
==15816==    by 0x6F155D: cChunkMap::cChunkLayer::GetChunk(int, int, int) (ChunkMap.cpp:1789)
==15816==    by 0x6EC1C0: cChunkMap::GetChunkNoGen(int, int, int) (ChunkMap.cpp:134)
==15816==    by 0x6EF560: cChunkMap::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (ChunkMap.cpp:1150)
==15816==    by 0x6BD82D: cWorld::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (World.cpp:1897)
==15816==    by 0x6CA853: cEntity::MoveToCorrectChunk(bool) (Entity.cpp:142)
==15816==    by 0x6CA561: cEntity::Initialize(cWorld*) (Entity.cpp:84)
==15816==    by 0x63F1E4: cPlayer::Initialize(cWorld*) (Player.cpp:128)
==15816==    by 0x62EE2B: cClientHandle::Authenticate() (ClientHandle.cpp:257)
==15816==    by 0x6DC52D: cServer::AuthenticateUser(int) (Server.cpp:641)
==15816==    by 0x627013: cRoot::AuthenticateUser(int) (Root.cpp:385)
==15816==    by 0x62AAC8: cAuthenticator::Execute() (Authenticator.cpp:144)
==15816==
==15816== Conditional jump or move depends on uninitialised value(s)
==15816==    at 0x60EC6D: deflate_slow (deflate.c:1242)
==15816==    by 0x60F84F: deflate (deflate.c:903)
==15816==    by 0x60CDD3: compress2 (compress.c:49)
==15816==    by 0x69D010: CompressString(char const*, int, std::string&) (StringCompression.cpp:23)
==15816==    by 0x6AAF21: cWSSAnvil::SaveChunkToData(cChunkCoords const&, std::string&) (WSSAnvil.cpp:452)
==15816==    by 0x6AA875: cWSSAnvil::SaveChunk(cChunkCoords const&) (WSSAnvil.cpp:313)
==15816==    by 0x6A8350: cWorldStorage::SaveOneChunk() (WorldStorage.cpp:355)
==15816==    by 0x6A8021: cWorldStorage::Execute() (WorldStorage.cpp:286)
==15816==    by 0x64BFD8: cIsThread::thrExecute(void*) (IsThread.h:62)
==15816==    by 0x55DF8C9: start_thread (pthread_create.c:300)
==15816==    by 0x58C4B6C: clone (clone.S:112)
==15816==  Uninitialised value was created by a heap allocation
==15816==    at 0x4C2695A: operator new(unsigned long) (vg_replace_malloc.c:298)
==15816==    by 0x6F155D: cChunkMap::cChunkLayer::GetChunk(int, int, int) (ChunkMap.cpp:1789)
==15816==    by 0x6EC1C0: cChunkMap::GetChunkNoGen(int, int, int) (ChunkMap.cpp:134)
==15816==    by 0x6EF560: cChunkMap::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (ChunkMap.cpp:1150)
==15816==    by 0x6BD82D: cWorld::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (World.cpp:1897)
==15816==    by 0x6CA853: cEntity::MoveToCorrectChunk(bool) (Entity.cpp:142)
==15816==    by 0x6CA561: cEntity::Initialize(cWorld*) (Entity.cpp:84)
==15816==    by 0x63F1E4: cPlayer::Initialize(cWorld*) (Player.cpp:128)
==15816==    by 0x62EE2B: cClientHandle::Authenticate() (ClientHandle.cpp:257)
==15816==    by 0x6DC52D: cServer::AuthenticateUser(int) (Server.cpp:641)
==15816==    by 0x627013: cRoot::AuthenticateUser(int) (Root.cpp:385)
==15816==    by 0x62AAC8: cAuthenticator::Execute() (Authenticator.cpp:144)
==15816==
==15816== Conditional jump or move depends on uninitialised value(s)
==15816==    at 0x60ECF8: deflate_slow (deflate.c:1240)
==15816==    by 0x60F84F: deflate (deflate.c:903)
==15816==    by 0x60CDD3: compress2 (compress.c:49)
==15816==    by 0x69D010: CompressString(char const*, int, std::string&) (StringCompression.cpp:23)
==15816==    by 0x6AAF21: cWSSAnvil::SaveChunkToData(cChunkCoords const&, std::string&) (WSSAnvil.cpp:452)
==15816==    by 0x6AA875: cWSSAnvil::SaveChunk(cChunkCoords const&) (WSSAnvil.cpp:313)
==15816==    by 0x6A8350: cWorldStorage::SaveOneChunk() (WorldStorage.cpp:355)
==15816==    by 0x6A8021: cWorldStorage::Execute() (WorldStorage.cpp:286)
==15816==    by 0x64BFD8: cIsThread::thrExecute(void*) (IsThread.h:62)
==15816==    by 0x55DF8C9: start_thread (pthread_create.c:300)
==15816==    by 0x58C4B6C: clone (clone.S:112)
==15816==  Uninitialised value was created by a heap allocation
==15816==    at 0x4C2695A: operator new(unsigned long) (vg_replace_malloc.c:298)
==15816==    by 0x6F155D: cChunkMap::cChunkLayer::GetChunk(int, int, int) (ChunkMap.cpp:1789)
==15816==    by 0x6EC1C0: cChunkMap::GetChunkNoGen(int, int, int) (ChunkMap.cpp:134)
==15816==    by 0x6EF560: cChunkMap::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (ChunkMap.cpp:1150)
==15816==    by 0x6BD82D: cWorld::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (World.cpp:1897)
==15816==    by 0x6CA853: cEntity::MoveToCorrectChunk(bool) (Entity.cpp:142)
==15816==    by 0x6CA561: cEntity::Initialize(cWorld*) (Entity.cpp:84)
==15816==    by 0x63F1E4: cPlayer::Initialize(cWorld*) (Player.cpp:128)
==15816==    by 0x62EE2B: cClientHandle::Authenticate() (ClientHandle.cpp:257)
==15816==    by 0x6DC52D: cServer::AuthenticateUser(int) (Server.cpp:641)
==15816==    by 0x627013: cRoot::AuthenticateUser(int) (Root.cpp:385)
==15816==    by 0x62AAC8: cAuthenticator::Execute() (Authenticator.cpp:144)
==15816==
==15816== Conditional jump or move depends on uninitialised value(s)
==15816==    at 0x60ED16: deflate_slow (deflate.c:1262)
==15816==    by 0x60F84F: deflate (deflate.c:903)
==15816==    by 0x60CDD3: compress2 (compress.c:49)
==15816==    by 0x69D010: CompressString(char const*, int, std::string&) (StringCompression.cpp:23)
==15816==    by 0x6AAF21: cWSSAnvil::SaveChunkToData(cChunkCoords const&, std::string&) (WSSAnvil.cpp:452)
==15816==    by 0x6AA875: cWSSAnvil::SaveChunk(cChunkCoords const&) (WSSAnvil.cpp:313)
==15816==    by 0x6A8350: cWorldStorage::SaveOneChunk() (WorldStorage.cpp:355)
==15816==    by 0x6A8021: cWorldStorage::Execute() (WorldStorage.cpp:286)
==15816==    by 0x64BFD8: cIsThread::thrExecute(void*) (IsThread.h:62)
==15816==    by 0x55DF8C9: start_thread (pthread_create.c:300)
==15816==    by 0x58C4B6C: clone (clone.S:112)
==15816==  Uninitialised value was created by a heap allocation
==15816==    at 0x4C2695A: operator new(unsigned long) (vg_replace_malloc.c:298)
==15816==    by 0x6F155D: cChunkMap::cChunkLayer::GetChunk(int, int, int) (ChunkMap.cpp:1789)
==15816==    by 0x6EC1C0: cChunkMap::GetChunkNoGen(int, int, int) (ChunkMap.cpp:134)
==15816==    by 0x6EF560: cChunkMap::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (ChunkMap.cpp:1150)
==15816==    by 0x6BD82D: cWorld::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (World.cpp:1897)
==15816==    by 0x6CA853: cEntity::MoveToCorrectChunk(bool) (Entity.cpp:142)
==15816==    by 0x6CA561: cEntity::Initialize(cWorld*) (Entity.cpp:84)
==15816==    by 0x63F1E4: cPlayer::Initialize(cWorld*) (Player.cpp:128)
==15816==    by 0x62EE2B: cClientHandle::Authenticate() (ClientHandle.cpp:257)
==15816==    by 0x6DC52D: cServer::AuthenticateUser(int) (Server.cpp:641)
==15816==    by 0x627013: cRoot::AuthenticateUser(int) (Root.cpp:385)
==15816==    by 0x62AAC8: cAuthenticator::Execute() (Authenticator.cpp:144)
==15816==
==15816== Syscall param write(buf) points to uninitialised byte(s)
==15816==    at 0x58B88ED: ??? (syscall-template.S:82)
==15816==    by 0x5862EE2: _IO_file_write@@GLIBC_2.2.5 (fileops.c:1276)
==15816==    by 0x5862B59: new_do_write (fileops.c:530)
==15816==    by 0x5862E84: _IO_do_write@@GLIBC_2.2.5 (fileops.c:503)
==15816==    by 0x5864726: _IO_switch_to_get_mode (genops.c:189)
==15816==    by 0x5863557: _IO_file_seekoff@@GLIBC_2.2.5 (fileops.c:986)
==15816==    by 0x585BB39: fseek (fseek.c:41)
==15816==    by 0x64B88C: cFile::Seek(int) (File.cpp:183)
==15816==    by 0x6ADDD2: cWSSAnvil::cMCAFile::SetChunkData(cChunkCoords const&, std::string const&) (WSSAnvil.cpp:1117)
==15816==    by 0x6AA9F3: cWSSAnvil::SetChunkData(cChunkCoords const&, std::string const&) (WSSAnvil.cpp:353)
==15816==    by 0x6AA89A: cWSSAnvil::SaveChunk(cChunkCoords const&) (WSSAnvil.cpp:317)
==15816==    by 0x6A8350: cWorldStorage::SaveOneChunk() (WorldStorage.cpp:355)
==15816==  Address 0x402e216 is not stack'd, malloc'd or (recently) free'd
==15816==  Uninitialised value was created by a heap allocation
==15816==    at 0x4C2695A: operator new(unsigned long) (vg_replace_malloc.c:298)
==15816==    by 0x6F155D: cChunkMap::cChunkLayer::GetChunk(int, int, int) (ChunkMap.cpp:1789)
==15816==    by 0x6EC1C0: cChunkMap::GetChunkNoGen(int, int, int) (ChunkMap.cpp:134)
==15816==    by 0x6EF560: cChunkMap::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (ChunkMap.cpp:1150)
==15816==    by 0x6BD82D: cWorld::CompareChunkClients(int, int, int, int, int, int, cClientDiffCallback&) (World.cpp:1897)
==15816==    by 0x6CA853: cEntity::MoveToCorrectChunk(bool) (Entity.cpp:142)
==15816==    by 0x6CA561: cEntity::Initialize(cWorld*) (Entity.cpp:84)
==15816==    by 0x63F1E4: cPlayer::Initialize(cWorld*) (Player.cpp:128)
==15816==    by 0x62EE2B: cClientHandle::Authenticate() (ClientHandle.cpp:257)
==15816==    by 0x6DC52D: cServer::AuthenticateUser(int) (Server.cpp:641)
==15816==    by 0x627013: cRoot::AuthenticateUser(int) (Root.cpp:385)
==15816==    by 0x62AAC8: cAuthenticator::Execute() (Authenticator.cpp:144)
==15816==

Wow.. after a while it seems to have generated chunks @ my location i did /top i see dirt blocks with lava on it..


Attached Files Thumbnail(s)
   

.txt   error.txt (Size: 36.05 KB / Downloads: 250)
Reply
Thanks given by:
#23
Weird, my server crashes when it tries to load this world. I'll look at the valgrind logs, but they don't seem to have much other things than uninitialized values.
Reply
Thanks given by:
#24
I've tried to fix the errors in the log (rev 1040), can you re-test?
You don't even need to login to the server, just let it start up, load the world and then stop it.
Thanks.
Reply
Thanks given by:
#25
Will do so tomorrow Smile.
Reply
Thanks given by:
#26
I managed to get valgrind running on my virtualboxed linux. And it seems to find different stuff than yours - there were other messages, and it even crashed with my "crashing world" (though only once).
So I'm valgrinding now; thanks for the help.

Do you have any tips, as to what arguments to use?
I'm currently using "--leak-check=yes --track-origins=yes".
Reply
Thanks given by:
#27
Hey great!,

Using
valgrind --tool=memcheck --leak-check=full --leak-resolution=high --show-reachable=yes --track-origins=yes ./MCServer > output.log 2> error.log
Reply
Thanks given by:
#28
Yay! I found the offender that was writing where it shouldn't. cLightingThread had its ranges wrong, a typical off-by-one error. Fixed in rev 1046; the world doesn't crash the server anymore.

And with this fixed, valgrind outputs no more major warnings Smile
Reply
Thanks given by:
#29
Yay Smile, i guess i can just now run the server in release Smile.
Reply
Thanks given by:
#30
yeah, you can finally get some gameplay again Smile
Reply
Thanks given by:




Users browsing this thread: 2 Guest(s)