Complete.Org: Mailing Lists: Archives: freeciv-dev: November 2003:
[Freeciv-Dev] (PR#6831) [CVS 2003-11-10] GTK+ Client Memory Allocation f
Home

[Freeciv-Dev] (PR#6831) [CVS 2003-11-10] GTK+ Client Memory Allocation f

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: undisclosed-recipients: ;
Subject: [Freeciv-Dev] (PR#6831) [CVS 2003-11-10] GTK+ Client Memory Allocation failure
From: "awilkins@xxxxxxxxxxxx" <awilkins@xxxxxxxxxxxx>
Date: Mon, 10 Nov 2003 23:09:28 -0800
Reply-to: rt@xxxxxxxxxxx

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

Platform information:

linux 2.4.20-20.7 i686
gtk+ 2.0.2
imlib 1.9.13
glib 2.0.1
gcc 2.9.6 and 3.3

I have a fairly large saved game (around 1600 cities; 2700 units).  I 
start the server using this saved game, start the client, connect, and 
then start the game.  The output from the client is as follows:

1: Cannot find sound spec-file "stdsounds".
1: To get sound you need to download a sound set!
1: Get sound sets from 
<ftp://ftp.freeciv.org/freeciv/contrib/sounds/sets>.
1: Will continue with disabled sounds.
2: LANGUAGE="en-us"
0: Detected fatal error in mem.c line 41:
0: Out of memory trying to malloc 1684370035 bytes at line 226 of 
attribute.c.
civclient: shared.c:665: real_die: Assertion `0' failed.
Aborted

The back trace is:

#0  0x42029331 in kill () from /lib/i686/libc.so.6
#1  0x4047bbdb in raise () from /lib/i686/libpthread.so.0
#2  0x4202a8c2 in abort () from /lib/i686/libc.so.6
#3  0x42022ecb in __assert_fail () from /lib/i686/libc.so.6
#4  0x080cbc06 in real_die () at shared.c:665
#5  0x080c824e in handle_alloc_failure (size=0, called_as=0x0, line=0, 
    file=0x0) at mem.c:41
#6  0x080c82b0 in fc_real_malloc (size=1684370035, 
    called_as=0x80e4eb2 "malloc", line=226, file=0x80d641d "attribute.c")
    at mem.c:60
#7  0x08052eab in unserialize_hash (hash=0x834abe8, data=0x0, 
    data_length=1684370035) at attribute.c:226
#8  0x08053072 in attribute_restore () at attribute.c:276
#9  0x0805615d in handle_packet_input (packet=0x0, type=0) at 
civclient.c:453
#10 0x080596eb in input_from_server (fd=6) at clinet.c:330
#11 0x40233e26 in gdk_get_show_events () from 
/usr/lib/libgdk-x11-2.0.so.0
#12 0x403ae831 in g_io_unix_dispatch () from /usr/lib/libglib-2.0.so.0
#13 0x4038fdd3 in g_main_dispatch () from /usr/lib/libglib-2.0.so.0
#14 0x40390c51 in g_main_context_dispatch () from 
/usr/lib/libglib-2.0.so.0
#15 0x40391011 in g_main_context_iterate () from 
/usr/lib/libglib-2.0.so.0
#16 0x40391720 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#17 0x400cd2b3 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#18 0x0808d8a8 in ui_main (argc=1, argv=0xbfffde14) at gui_main.c:1190
#19 0x08055856 in main (argc=1, argv=0xbfffde14) at civclient.c:244
#20 0x42017589 in __libc_start_main () from /lib/i686/libc.so.6

The save file is located at:

http://www.stanford.edu/~awilkins/game-09-+0987a.sav.gz

For comparison purposes, I also have a slightly earlier version of the 
save file which doesn't cause the client to immediately crash on 
connecting; it is at:

http://www.stanford.edu/~awilkins/game-09-+0987.sav.gz 

It strikes me that the amount of memory that the client is attempting to 
allocate here (over 1 1/2 GB!) is excessive, to say the least, 
especially given that I was able to play up to the point of generating 
the save file.  However, I don't know enough about the specifics of what 
FreeCiv is allocating memory for to determine exactly why this is 
occuring.

Alex Wilkins




[Prev in Thread] Current Thread [Next in Thread]
  • [Freeciv-Dev] (PR#6831) [CVS 2003-11-10] GTK+ Client Memory Allocation failure, awilkins@xxxxxxxxxxxx <=