[Bug 3585] New: recursive error after server disconnect
bugzilla-daemon at icculus.org
bugzilla-daemon at icculus.org
Sun Mar 30 11:18:47 EDT 2008
http://bugzilla.icculus.org/show_bug.cgi?id=3585
Summary: recursive error after server disconnect
Product: Quake 3
Version: SVN HEAD
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P3
Component: Misc
AssignedTo: zakk at icculus.org
ReportedBy: devhc97 at gmail.com
QAContact: quake3-bugzilla at icculus.org
There's some bad behaviour introduced in r1274. When a server stops serving,
all r1274+ clients will suffer a recursive error, a soft crash. Here's a
technical description:
- ioq3, svn head, etc. is connected to a remote server
- the server decides to do a /disconnect or a /quit
- inside a normal VM_Call() to cgame...
- in the snapshot functions, CG_ExecuteNewServerCommands() handles every
reliable server command
- for each, trap_GetServerCommand() is called
- which, through the syscall callback code, turns into a call to
CL_GetServerCommand()
- that function recognizes the "disconnect" server command, and executes
Com_Error() with ERR_SERVERDISCONNECT (note: com_errorEntered is set to true)
- in that sutiation, CL_FlushMemory() is called
- we don't have a server running, so we do a Hunk_Clear()
- there, VM_Clear() clears all the VMs via VM_Free()
- since the cgame is still running (vm->callLevel > 0), Com_Error() is called
again, this time with ERR_FATAL
- that's our second error so far (com_errorEntered is true), so Sys_Error()
shuts down the program
--
Configure bugmail: http://bugzilla.icculus.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug, or are watching the QA contact.
More information about the quake3-bugzilla
mailing list