Page 3 of 5

Re: World Bugs and Crashes List

Posted: Mon Aug 04, 2014 10:02 am
by John Adams
Wait, this is C++... so naturally it is not that simple.

Code: Select all

Main.cpp:72:48: error: use of deleted function ‘std::atomic<unsigned int>::atomic(const std::atomic<unsigned int>&)’
 atomic<uint32_t> UnrealActor::next_unique_id = 0;
                                                ^
In file included from Main.cpp:34:0:
/usr/include/c++/4.8/atomic:620:7: error: declared here
       atomic(const atomic&) = delete;
       ^
make: *** [Main.o] Error 1

Re: World Bugs and Crashes List

Posted: Mon Aug 04, 2014 6:23 pm
by John Adams
Small bug in the Windows Title bar: the Decrement fires too often, and removes all character counts from the title bar. We need to move the decrement to the place where a real disconnect is happening.

Re: World Bugs and Crashes List

Posted: Mon Aug 04, 2014 7:59 pm
by John Adams
I noticed after being online chatting for '30' minutes, everything locks up. I looked in the log a few minutes after I noticed the comms stopped working.

[quote]19:45:09.659 D Chat [NewTelon] Cyrcle: Forgot how big NN was
19:51:03.428 I UDP Client from 76.189.152.250 set to disconnect : Timeout
19:51:03.428 I UDP Client from 98.220.34.63 set to disconnect : Timeout
19:51:03.428 I UDP Client from 66.11.245.64 set to disconnect : Timeout
19:51:03.428 I UDP Client from 66.11.245.64 set to disconnect : Timeout
19:51:03.444 I Chunk Shutdown timer expired. Shutting down Temple of Tehatamani.
19:51:03.444 I UDP Client from 68.98.218.5 set to disconnect : Timeout
19:51:03.444 D Command Player .move to -23079.000000, 41262.000000, 27216.000000
19:51:03.444 I UDP Client from 68.98.218.5 set to disconnect : Timeout
19:51:03.444 I UDP Client from 76.189.152.250 set to disconnect : Timeout
19:51:03.444 I UDP Client from 98.220.34.63 set to disconnect : Timeout
19:51:03.444 I UDP Client from 99.182.29.191 set to disconnect : Timeout
19:51:03.459 I Chunk Shutdown timer expired. Shutting down Wyrmwing Slopes.
19:51:03.662 E Chunk Unhandled opcode 0x000003E5 (997) from 76.189.152.250
19:51:04.442 I UDP Client from 98.220.34.63 has been removed.
19:51:04.458 I Chunk Starting chunk shutdown timer for Tehatamani Harbor.
19:51:04.473 I UDP New client connected from 98.220.34.63
19:51:04.520 I Chunk Chunk shutdown cancelled for Tehatamani Harbor.
19:51:05.453 I Chunk Starting chunk shutdown timer for Nusibe Necropolis.
19:51:05.453 I UDP Client from 66.11.245.64 has been removed.
19:51:05.453 I UDP Client from 76.189.152.250 has been removed.
19:51:05.453 I UDP Client from 66.11.245.64 has been removed.
19:51:05.453 I UDP Client from 68.98.218.5 has been removed.
19:51:05.453 I UDP Client from 68.98.218.5 has been removed.
19:51:05.467 I UDP Client from 76.189.152.250 has been removed.
19:51:05.467 I UDP Client from 98.220.34.63 has been removed.
19:51:05.467 I UDP Client from 99.182.29.191 has been removed.
19:51:05.509 I UDP New client connected from 66.11.245.64
19:51:05.551 I UDP New client connected from 76.189.152.250
19:51:05.565 I Chunk Chunk shutdown cancelled for Nusibe Necropolis.
19:51:05.579 I UDP New client connected from 68.98.218.5
19:51:20.578 I UDP New client connected from 99.182.29.191
19:51:21.016 I UDP New client connected from 68.98.218.5
19:51:21.094 I UDP New client connected from 98.220.34.63
19:51:21.109 I UDP New client connected from 66.11.245.64
19:51:21.219 I UDP New client connected from 76.189.152.250
19:51:28.445 I Chunk Received zone request!
19:51:28.445 I Chunk New zone (-17, -13)
19:51:28.445 D Chunk Starting chunk 'Temple of Tehatamani' (50)[/quote]

This is what the world was doing, it's no wonder things stop working. I'd really like to get this resolved.


Edit: This was my startup

Code: Select all

19:23:56.244 I UDP      New client connected from 68.98.218.5
19:23:56.244 I UDP      Received session request from 68.98.218.5 with connection ID 1355101545
So it was just under 30 mins.

Re: World Bugs and Crashes List

Posted: Tue Aug 05, 2014 1:50 am
by theFoof
I was able to reproduce this with local clients and what happened was after one of the connection dropped, sometimes the remaining client would just change what port it was using as it's source. The new client however never gets a session request or anything like that so we can't really reference it very well in code and it breaks a lot of things.

So we have to figure out if this is normal and there's just a packet the client sends out to let the server know, or more likely because of the timing it's reacting to something the server is doing. It's probably going to be socket related, but I don't know for sure.

Re: World Bugs and Crashes List

Posted: Thu Aug 07, 2014 8:23 am
by John Adams
First crash in days, big stack too.

Code: Select all

(gdb) bt
#0  0x00007ffff743d630 in std::string::assign(std::string const&) ()
   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#1  0x000000000045368e in operator= (__str=..., this=0x7fffbc003910)
    at /usr/include/c++/4.8/bits/basic_string.h:547
#2  ChunkServer::SetChunkProperties (this=this@entry=0x7fffbc0033a8,
    info=info@entry=0x0) at ChunkServer.cpp:206
#3  0x00000000004567f7 in ChunkServer::ChunkServer (this=0x7fffbc0033a8,
    info=0x0) at ChunkServer.cpp:65
#4  0x000000000046ae90 in construct<ChunkServer, ChunkInfo*&> (
    __p=0x7fffbc0033a8, this=<optimized out>)
    at /usr/include/c++/4.8/ext/new_allocator.h:120
#5  _S_construct<ChunkServer, ChunkInfo*&> (__p=0x7fffbc0033a8, __a=...)
    at /usr/include/c++/4.8/bits/alloc_traits.h:254
#6  construct<ChunkServer, ChunkInfo*&> (__p=0x7fffbc0033a8, __a=...)
    at /usr/include/c++/4.8/bits/alloc_traits.h:393
#7  _Sp_counted_ptr_inplace<ChunkInfo*&> (__a=..., this=0x7fffbc003390)
    at /usr/include/c++/4.8/bits/shared_ptr_base.h:399
#8  construct<std::_Sp_counted_ptr_inplace<ChunkServer, std::allocator<ChunkServer>, (__gnu_cxx::_Lock_policy)2>, std::allocator<ChunkServer> const, ChunkInfo*&> (__p=0x7fffbc003390, this=<synthetic pointer>)
    at /usr/include/c++/4.8/ext/new_allocator.h:120
#9  _S_construct<std::_Sp_counted_ptr_inplace<ChunkServer, std::allocator<ChunkServer>, (__gnu_cxx::_Lock_policy)2>, std::allocator<ChunkServer> const, ChunkInf---Type <return> to continue, or q <return> to quit---
o*&> (__p=0x7fffbc003390, __a=<synthetic pointer>)
    at /usr/include/c++/4.8/bits/alloc_traits.h:254
#10 construct<std::_Sp_counted_ptr_inplace<ChunkServer, std::allocator<ChunkServer>, (__gnu_cxx::_Lock_policy)2>, std::allocator<ChunkServer> const, ChunkInfo*&> (__p=0x7fffbc003390, __a=<synthetic pointer>)
    at /usr/include/c++/4.8/bits/alloc_traits.h:393
#11 __shared_count<ChunkServer, std::allocator<ChunkServer>, ChunkInfo*&> (
    __a=..., this=<optimized out>)
    at /usr/include/c++/4.8/bits/shared_ptr_base.h:502
#12 __shared_ptr<std::allocator<ChunkServer>, ChunkInfo*&> (__a=...,
    __tag=..., this=<optimized out>)
    at /usr/include/c++/4.8/bits/shared_ptr_base.h:957
#13 shared_ptr<std::allocator<ChunkServer>, ChunkInfo*&> (__a=..., __tag=...,
    this=<optimized out>) at /usr/include/c++/4.8/bits/shared_ptr.h:316
#14 allocate_shared<ChunkServer, std::allocator<ChunkServer>, ChunkInfo*&> (
    __a=...) at /usr/include/c++/4.8/bits/shared_ptr.h:598
#15 make_shared<ChunkServer, ChunkInfo*&> ()
    at /usr/include/c++/4.8/bits/shared_ptr.h:614
#16 Net::SendClientChunkInfo (this=0x6eb000 <net>, client=...,
    coord_x=coord_x@entry=-25, coord_y=coord_y@entry=3) at Net.cpp:544
#17 0x000000000045946f in ChunkServer::HandleZoneRequest (
    this=this@entry=0x7fffd00014f8, client=..., packet_struct=...)
    at ChunkServer.cpp:820
---Type <return> to continue, or q <return> to quit---
#18 0x000000000045e3e6 in ChunkServer::ProcessPackets (
    this=this@entry=0x7fffd00014f8) at ChunkServer.cpp:294
#19 0x000000000045e82e in ChunkPacketThread (data=0x7fffd00014f8)
    at ChunkServer.cpp:113
#20 0x000000000044adf2 in ThreadRun (arg=0x7fffd0004430)
    at ../common/Thread.cpp:77
#21 0x00007ffff768e182 in start_thread (arg=0x7fffde7fc700)
    at pthread_create.c:312
#22 0x00007ffff6b9b38d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
Console:
[quote][New Thread 0x7fffdeffd700 (LWP 28699)]
[New Thread 0x7fffde7fc700 (LWP 28701)]
[New Thread 0x7fffddffb700 (LWP 28702)]
[New Thread 0x7fffdd7fa700 (LWP 28703)]
08:18:18.016 D Chunk Starting chunk 'Isle of Dawn' (289)
08:18:18.016 I Unreal Loading Unreal data from the database.
08:18:18.016 D NPC Loading NPCs
08:18:18.107 D NPC Loaded 0 NPCs.
08:18:18.198 D Object Loaded 0 Objects.
08:18:18.200 D Unreal Loaded 1 Music files.
08:18:18.202 D Unreal Loaded 1 Sounds.
08:18:18.447 I UDP Client from 98.220.34.63:60876 set to disconnect : Application
08:18:18.454 I UDP New client connected from 98.220.34.63:60877
08:18:18.455 I UDP Received session request from 98.220.34.63:60877 with connection ID 1596051180
08:18:18.622 I Chunk New Session: Account ID: 95 Session ID: ...'
08:18:18.786 D Chunk control_text='HELLO REVISION=0 MINVER=3151 VER=3186'
08:18:18.936 D Chunk control_text='LOGIN'
08:18:20.320 I UDP Client from 98.220.34.63:60876 has been removed.
08:18:20.368 I Chunk Starting chunk shutdown timer for Isle of Dawn.
08:18:24.748 D Chunk control_text='JOIN'
08:18:33.689 I Chunk Received zone request!
08:18:33.689 I Chunk New zone (-25, 3)
[/quote]

Re: World Bugs and Crashes List

Posted: Thu Aug 07, 2014 8:30 am
by theFoof
[quote="John Adams"]First crash in days, big stack too.

Code: Select all

#2  ChunkServer::SetChunkProperties (this=this@entry=0x7fffbc0033a8,
    info=info@entry=0x0) at ChunkServer.cpp:206
[/quote]

Looks like the chunk info struct was null, probably another case of a bad chunk id getting passed around.

Re: World Bugs and Crashes List

Posted: Thu Aug 07, 2014 8:37 am
by John Adams
Seems to be right up top in the constructor. Should we check "info" before proceeding? I imagine halting a chunk load will leave everything in a bad state.

Code: Select all

ChunkServer::ChunkServer(ChunkInfo* info) {
?	if( !info )
?		return;
	SetChunkProperties(info);

Re: World Bugs and Crashes List

Posted: Thu Aug 07, 2014 8:42 am
by theFoof
I lied, actually that was from a zoning packet...so the coord values were not valid? It would be better to check info before constructing though and just DC the client that sent the request. x = -25 y = 3 it looks like.

double edit: Those values don't look terribly off from other chunk coords but we don't have that entry in the DB, would be nice if someone would tell us where they were zoning to when the crash happened.

Re: World Bugs and Crashes List

Posted: Thu Aug 07, 2014 9:31 am
by John Adams
According to the console, they were in Isle of Dawn, which covers the -25, 0/1/2 through -27, 0/1/2 square of 9 zones. -25, 3 sounds like the south chunk in the left-most column of the world. SOE has a "do not enter" packet, maybe Xinux can tell us which one. I guess it never occurred to me to run off the end of the world before. Ahh, players...

Re: World Bugs and Crashes List

Posted: Thu Aug 07, 2014 9:50 am
by theFoof
Put in a temporary fix for now just to stop the crash, if there's a packet that prevents the attempt at all that would be cool though.