Complete.Org: Mailing Lists: Archives: freeciv-dev: October 2004:
[Freeciv-Dev] (PR#10554) Reproduceable crash in civserver
Home

[Freeciv-Dev] (PR#10554) Reproduceable crash in civserver

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: sam@xxxxxxxxxxxxx
Subject: [Freeciv-Dev] (PR#10554) Reproduceable crash in civserver
From: "Jason Short" <jdorje@xxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 16 Oct 2004 15:22:08 -0700
Reply-to: rt@xxxxxxxxxxx

<URL: http://rt.freeciv.org/Ticket/Display.html?id=10554 >

> [sam@xxxxxxxxxxxxx - Sat Oct 16 21:24:17 2004]:
> 
> Per I. Mathisen wrote:
> > Can you get a backtrace with gdb from the crash? In case you don't know,
> > run 'gdb <core> <server binary>' and type 'bt full' (or failing
that, just
> > 'bt'), then post the output here.
> 
> Hi Per,
> 
> I have attached the backtrace to this message. Unfortunatly gdb itself 
> dies before finishing it, perhaps the call stack is too deep?

Handle_player_research gets into a recursive loop.  More than that I
can't tell.

But note that choose_tech does not _always_ choose the tech.  Can you
try running with this patch, and see if the crash/backtrace is any
different?

jason

Index: server/plrhand.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/server/plrhand.c,v
retrieving revision 1.330.2.1
diff -u -r1.330.2.1 plrhand.c
--- server/plrhand.c    12 Oct 2004 16:35:58 -0000      1.330.2.1
+++ server/plrhand.c    16 Oct 2004 22:21:29 -0000
@@ -811,6 +811,7 @@
   send_player_info(pplayer, pplayer);
 
   /* Notify Team members */
+  assert(pplayer->research.researching == tech);
   players_iterate(aplayer) {
     if (pplayer != aplayer
        && aplayer->research.researching != tech

[Prev in Thread] Current Thread [Next in Thread]