PlaneShift

  • Status Closed
  • Percent Complete
    100%
  • Task Type Bug Report
  • Category Engine → Misc
  • Assigned To
    Mike Gist
  • Operating System
  • Severity Critical
  • Priority
  • Reported Version
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: PlaneShift
Opened by Caarrie - 19.01.2009
Last edited by Mike Gist - 26.04.2009

FS#2694 - crash on teleporting to hydlaa_plaza

Several testers have crashes when teleporting to several maps (hydlaa_plaza, akkaio,…). Sometimes loging in again afterwards works, but often not. I removed most of Caarries crash stack to make things readable, there is a similar stack in windows in my comment below. See my comment febr. 10 for a bit more info.

                                  

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f3a942a96f0 (LWP 13784)]
0x000000000063add4 in Loader::LoadSector (this=0x5f13d90, pos=@0x7fff9c2ccd04,

  bbox=@0x7fff9c2ccb90, sector=0x7f3a8042f700)                                
  at src/common/engine/loader.cpp:774                                         

774 sector→meshes[i]→object→GetMovable()→ClearSectors();
(gdb) bt
#0 0x000000000063add4 in Loader::LoadSector (this=0x5f13d90,

  pos=@0x7fff9c2ccd04, bbox=@0x7fff9c2ccb90, sector=0x7f3a8042f700)           
  at src/common/engine/loader.cpp:774                                         

#1 0x000000000063c159 in Loader::UpdatePosition (this=0x5f13d90,

  pos=@0x7fff9c2ccd04, sectorName=0x7fff9c2ccd60 "hydlaa_plaza", force=true)  
  at src/common/engine/loader.cpp:659                                         

#2 0x000000000041a820 in psCelClient::HandleActor (this=0x7f3a80594fc0,

  me=0x5bb1500) at src/client/pscelclient.cpp:287                             

#3 0x000000000041a97c in psCelClient::CheckEntityQueues (this=0x7f3a80594fc0)

  at src/client/pscelclient.cpp:773                                           

#4 0x000000000046d999 in psEngine::ProcessLogic (this=0x117c620,

  ev=@0x7f3a94115f64) at src/client/psengine.cpp:776                          

this is with the most recently maps. [and trunk client/server]

Closed by  Mike Gist
26.04.2009 05:13
Reason for closing:  
weltall commented on 20.01.2009 11:35

doesn't crash for me but still inaccessible (i can hear the music but the video freezes) although it says loaded successfully. Loading directly there works fine.

Project Manager
Lanarel commented on 03.02.2009 22:54

I can teleport to hydlaa plaza, but instead of a loading screen I get inside views of tavern, tower, guild house. Maybe similar to the podium appearing when loading the game. Anyway, no problem with hydlaa_plaza. I did crash teleporting to bronze doors though. WHen I logged in again, I did appear in bronzedoors though.
Problems may be in sectors.sql, or zoneinfo.xml. Starting on a new computer, I could not teleport at all until I copied those from my old computer. It might be that our versions are not correct for current maps?

I will set this new, as there clearly is something wrong.

Caarrie commented on 03.02.2009 23:05

I dont think this is related to zoneinfo.xml or sectors.sql as these same maps are used now on laanx with no changes to zoneinfo.xml so no changes to sectors.sql either.

Project Manager
Lanarel commented on 08.02.2009 10:19

If three testers have major problems teleporting, this should be critical.

Project Manager
Lanarel commented on 08.02.2009 20:49

I now got a crash, with following callstack:

 	psclient.exe!Loader::LoadSector(const csVector3 & pos={...}, const csBox3 & bbox={...}, Loader::Sector * sector=0x0e912550)  Line 774 + 0x28 bytes	C++
 	psclient.exe!Loader::UpdatePosition(const csVector3 & pos={...}, const char * sectorName=0x084559e4, bool force=true)  Line 660	C++
>	psclient.exe!ZoneHandler::HandleMessage(MsgEntry * me=0x1c7aacf0)  Line 219	C++
 	psclient.exe!psClientNetSubscriber::HandleMessage(MsgEntry * msg=0x1c7aacf0, Client * __formal=0x6571e2d6)  Line 70 + 0x1d bytes	C++
 	psclient.exe!MsgHandler::Publish(MsgEntry * me=0x1c7aacf0)  Line 76	C++
 	psclient.exe!psClientDR::HandleDeadReckon(MsgEntry * me=0x1bfc1c60)  Line 232	C++
 	psclient.exe!psClientDR::HandleMessage(MsgEntry * me=0x1bfc1c60)  Line 169 + 0xc bytes	C++
 	psclient.exe!psClientNetSubscriber::HandleMessage(MsgEntry * msg=0x1bfc1c60, Client * __formal=0x0030fa10)  Line 70 + 0x1d bytes	C++
 	psclient.exe!MsgHandler::Publish(MsgEntry * me=0x1bfc1c60)  Line 76	C++
 	psclient.exe!psClientMsgHandler::DispatchQueue()  Line 94	C++
 	psclient.exe!psClientMsgHandler::HandleEvent(iEvent & ev={...})  Line 77	C++
 	psclient.exe!psClientMsgHandler::EventHandler::HandleEvent(iEvent & event={...})  Line 65 + 0x1b bytes	C++
 	crystalspace-1.9-vc9_d.dll!csEventTree::Dispatch(iEvent & e={...})  Line 576 + 0x10 bytes	C++
 	crystalspace-1.9-vc9_d.dll!csEventTree::Notify()  Line 547	C++
 	crystalspace-1.9-vc9_d.dll!csEventQueue::Notify(const CS::StringID<CS::StringSetTag::General> & name={...})  Line 241	C++
 	crystalspace-1.9-vc9_d.dll!csEventQueue::Process()  Line 261	C++
 	crystalspace-1.9-vc9_d.dll!csDefaultRunLoop(iObjectRegistry * r=0x001d6fd0)  Line 102	C++
 	psclient.exe!main(int argc=1, char * * argv=0x02268100)  Line 1991 + 0xa bytes	C++
 	psclient.exe!__tmainCRTStartup()  Line 586 + 0x19 bytes	C
 	psclient.exe!mainCRTStartup()  Line 403	C
 	kernel32.dll!75d94911() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]	
 	ntdll.dll!7747e4b6() 	
 	ntdll.dll!7747e489()

(this line added so above code is shown as code)

Project Manager
Lanarel commented on 10.02.2009 23:32

Did some more investigation, teleporting (or trying to log in in) to hydlaa_plaza. Crash is in LoadSector when checking for different meshes if they are within a given bounding box around the position. There are some weird things. The if first checks if it is inrange and than if not if it is outofrange. I would thing the latter is implied by not fulfilling the inrange test. When out of range, of the mesh of its objects movable, the sectors are cleared. The crash occurs because at some point sector→meshes[i]→object is null. Testing for this (keeping as much of code that would not crash), avoids the crash, but after getting this case a lot, you end up with your char in a void (showing only char and gui ontop of loading screen), soon followed by a crash because a mesh has no texture or something. I guess this means that the input (the map) is wrong, and not the code that may correctly assume sector→meshes[i]→object is not null.

Loyni commented on 14.02.2009 17:58

The same happens to me (at some point sector→meshes[i]→object is NULL) when threaded loading is disabled.
When I enable threaded loading tho, everything looks ok.

Mike Gist commented on 16.04.2009 18:53

Is this still a problem?

weltall commented on 16.04.2009 19:16

not here at least but going to hydlaa plaza and then hydlaa jayose makes the client freeze (not a crash). might just be a map issue as loading separately works.

aurelynt commented on 16.04.2009 22:19

Same here. Client still freezing sometimes when teleporting to some maps, especially hydlaa_plaza and hydlaa_jayose, but no more crashes.

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing