Originally posted by [b]Ai4rei[/b]
http://www.eathena.ws/board/index.php?autocom=bugtracker&showbug=719
Alle 3 Servers are crashing on start with following output:
LoginServer:
CODE
[Status]: The login-server is ready (Server is listening on the port xxxxx).
[Fatal Error]: Memory manager::memmgr_malloc() serious error (allocating 28+1638
4 bytes at ..\src\common\socket.c:524)
[Info]: ** Memory Manager Information **
Blocks: 0032 , BlockSize: 081960 Byte , Used: 00002561KB
Block #0000 : size: 00064 byte. used: 0027/0975 prev:NULL next:NULL
Block #0001 : size: 02048 byte. used: 0003/0039 prev:NULL next:NULL
Block #0002 : size: 16384 byte. used: 0003/0004 prev:NULL next:NULL
Block #0003 : size: 07168 byte. used: 0001/0011 prev:NULL next:NULL
Block #0004 : size: 01024 byte. used: 0002/0078 prev:NULL next:NULL
Block #0005 : size: 00128 byte. used: 0001/0553 prev:NULL next:NULL
Block #0006 : size: 01280 byte. used: 0001/0063 prev:NULL next:NULL
Block #0007 : size: 01088 byte. used: 0001/0073 prev:NULL next:NULL
Block #0008 : size: 00192 byte. used: 0001/0386 prev:NULL next:NULL
Block #0009 : unused.
Block #0010 : unused.
Block #0011 : unused.
Block #0012 : unused.
Block #0013 : unused.
Block #0014 : unused.
Block #0015 : unused.
Block #0016 : unused.
Block #0017 : unused.
Block #0018 : unused.
Block #0019 : unused.
Block #0020 : unused.
Block #0021 : unused.
Block #0022 : unused.
Block #0023 : unused.
Block #0024 : unused.
Block #0025 : unused.
Block #0026 : unused.
Block #0027 : unused.
Block #0028 : unused.
Block #0029 : unused.
Block #0030 : unused.
Block #0031 : unused.
CharServer:
CODE
[Info]: Attempt to connect to login-server...
[Status]: Connecting to x.x.x.x:xxxxx
[Fatal Error]: Memory manager::memmgr_malloc() serious error (allocating 28+1638
4 bytes at ..\src\common\socket.c:524)
[Info]: ** Memory Manager Information **
Blocks: 0032 , BlockSize: 081960 Byte , Used: 00002561KB
Block #0000 : size: 00064 byte. used: 0035/0975 prev:NULL next:NULL
Block #0001 : size: 02048 byte. used: 0003/0039 prev:NULL next:NULL
Block #0002 : size: 16384 byte. used: 0003/0004 prev:NULL next:NULL
Block #0003 : size: 07168 byte. used: 0001/0011 prev:NULL next:NULL
Block #0004 : size: 01024 byte. used: 0002/0078 prev:NULL next:NULL
Block #0005 : size: 00128 byte. used: 0001/0553 prev:NULL next:NULL
Block #0006 : size: 01088 byte. used: 0001/0073 prev:NULL next:NULL
Block #0007 : size: 01280 byte. used: 0005/0063 prev:NULL next:NULL
Block #0008 : size: 24064 byte. used: 0002/0003 prev:NULL next:NULL
Block #0009 : size: 01664 byte. used: 0001/0048 prev:NULL next:NULL
Block #0010 : size: 00192 byte. used: 0001/0386 prev:NULL next:NULL
Block #0011 : size: 27712 byte. used: 0001/0002 prev:NULL next:NULL
Block #0012 : unused.
Block #0013 : unused.
Block #0014 : unused.
Block #0015 : unused.
Block #0016 : unused.
Block #0017 : unused.
Block #0018 : unused.
Block #0019 : unused.
Block #0020 : unused.
Block #0021 : unused.
Block #0022 : unused.
Block #0023 : unused.
Block #0024 : unused.
Block #0025 : unused.
Block #0026 : unused.
Block #0027 : unused.
Block #0028 : unused.
Block #0029 : unused.
Block #0030 : unused.
Block #0031 : unused.
MapServer:
CODE
[Notice]: Server running in 'Debug Mode'.
[Fatal Error]: Memory manager::memmgr_malloc() serious error (allocating 28+23 b
ytes at ..\src\map\atcommand.c:150)
[Info]: ** Memory Manager Information **
Blocks: 0032 , BlockSize: 081960 Byte , Used: 00002561KB
Block #0000 : size: 00064 byte. used: 0503/0975 prev:NULL next:NULL
Block #3452816845 : size: 02048 byte. used: 0001/0039 prev:NULL next:NULL
Block #0002 : size: 16384 byte. used: 0001/0004 prev:NULL next:NULL
Block #0003 : size: 07168 byte. used: 0001/0011 prev:NULL next:NULL
Block #0004 : size: 01024 byte. used: 0001/0078 prev:NULL next:NULL
Block #0005 : size: 00128 byte. used: 0001/0553 prev:NULL next:NULL
Block #0006 : unused.
Block #0007 : unused.
Block #0008 : unused.
Block #0009 : unused.
Block #0010 : unused.
Block #0011 : unused.
Block #0012 : unused.
Block #0013 : unused.
Block #0014 : unused.
Block #0015 : unused.
Block #0016 : unused.
Block #0017 : unused.
Block #0018 : unused.
Block #0019 : unused.
Block #0020 : unused.
Block #0021 : unused.
Block #0022 : unused.
Block #0023 : unused.
Block #0024 : unused.
Block #0025 : unused.
Block #0026 : unused.
Block #0027 : unused.
Block #0028 : unused.
Block #0029 : unused.
Block #0030 : unused.
Block #0031 : unused.
/common/socket.c:
CODE
static int create_session(int fd, RecvFunc func_recv, SendFunc func_send, ParseFunc func_parse)
{
CREATE(session[fd], struct socket_data, 1);
CREATE(session[fd]->rdata, unsigned char, RFIFO_SIZE);
CREATE(session[fd]->wdata, unsigned char, WFIFO_SIZE); // <-- Line 524
session[fd]->max_rdata = RFIFO_SIZE;
session[fd]->max_wdata = WFIFO_SIZE;
session[fd]->func_recv = func_recv;
session[fd]->func_send = func_send;
session[fd]->func_parse = func_parse;
session[fd]->rdata_tick = last_tick;
return 0;
}
/map/atcommand.c:
CODE
int msg_config_read(const char* cfgName)
{
int msg_number;
char line[1024], w1[1024], w2[1024];
FILE *fp;
static int called = 1;
if ((fp = fopen(cfgName, "r")) == NULL) {
ShowError("Messages file not found: %s\n", cfgName);
return 1;
}
if ((--called) == 0)
memset(msg_table, 0, sizeof(msg_table[0]) * MAX_MSG);
while(fgets(line, sizeof(line), fp))
{
if (line[0] == '/' && line[1] == '/')
continue;
if (sscanf(line, "%[^:]: %[^\r\n]", w1, w2) != 2)
continue;
if (strcmpi(w1, "import") == 0)
msg_config_read(w2);
else
{
msg_number = atoi(w1);
if (msg_number >= 0 && msg_number < MAX_MSG)
{
if (msg_table[msg_number] != NULL)
aFree(msg_table[msg_number]);
msg_table[msg_number] = (char *)aMalloc((strlen(w2) + 1)*sizeof (char)); // <-- Line 150
strcpy(msg_table[msg_number],w2);
}
}
}
fclose(fp);
return 0;
}