Jump to content
  • 0

Map server crash


Question

Posted (edited)
[Error] Server received a crash signal attempt to save all online characters

This did happen to me multiple times on 2017-05-14aRagexeRE

1. Once when a party with Lv175 members on share EXP invite someone under Lv145 then this error appeared and map server closed.

The party just finished Ruwaya instance and it's time expired when they invited the Lv145 char.

I solved it by removing the party.

2. And once when I had VIP system enabled and when there is a non VIP Character made on vip slot whenever it tries to save it's information the map-server crash. This got solved by adding more free slots.

I wonder why these crashes do occur.

using this commit https://github.com/rathena/rathena/commit/d770de8015afd31be89e1b125a8c3615a0453f88

Edited by NotKappa

13 answers to this question

Recommended Posts

  • 0
Posted (edited)

No, I have no mods added except gepard which I don't think it would effect this.

Also a player told me that the map server crashed when the party reaches max (12) members.

I have tested myself and the map server did crash for me when a party reaches max members

Edited by NotKappa
  • 0
Posted (edited)
21 minutes ago, Jey said:

If you run rathena in Visual Studio there should be an debug mode. Which contains viewing the stack during a crash.

here is a screenshot when it crashed.

when I start the server again and login with a char that is in the party the map-server crash again.

image.thumb.png.c702b0213acee24e06b6f5486a155994.png

Edited by NotKappa
  • 0
Posted
3 minutes ago, Jey said:

Are you sure you're on `d770de8015afd31be89e1b125a8c3615a0453f88` ?

https://github.com/rathena/rathena/blob/d770de8015afd31be89e1b125a8c3615a0453f88/src/map/clif.c#L7468

I have gepard applied so it's probably not the same line.

this is the function I have on that line

void clif_party_info(struct party_data* p, struct map_session_data *sd)
{
	unsigned char buf[2 + 2 + NAME_LENGTH + (4 + NAME_LENGTH + MAP_NAME_LENGTH_EXT + 1 + 1)*MAX_PARTY];
	struct map_session_data* party_sd = NULL;
	int i, c;
#if PACKETVER < 20170502
	int cmd = 0xfb;
	int size = 46;
#else
	int cmd = 0xa44;
	int size = 50;
#endif

	nullpo_retv(p);

	WBUFW(buf, 0) = cmd;
	safestrncpy(WBUFCP(buf, 4), p->party.name, NAME_LENGTH);
	for (i = 0, c = 0; i < MAX_PARTY; i++)
	{
		struct party_member* m = &p->party.member[i];
		if (!m->account_id) continue;

		if (party_sd == NULL) party_sd = p->data[i].sd;

		WBUFL(buf, 28 + c*size) = m->account_id;
		safestrncpy(WBUFCP(buf, 28 + c*size + 4), m->name, NAME_LENGTH);
		mapindex_getmapname_ext(mapindex_id2name(m->map), WBUFCP(buf, 28 + c*size + 28));
		WBUFB(buf, 28 + c*size + 44) = (m->leader) ? 0 : 1;
		WBUFB(buf, 28 + c*size + 45) = (m->online) ? 0 : 1;
#if PACKETVER >= 20170502
		WBUFW(buf, 28 + c*size + 46) = m->class_;
		WBUFW(buf, 28 + c*size + 48) = m->lv;
#endif
		c++;
	}
#if PACKETVER < 20170502
	WBUFW(buf, 2) = 28 + c*size;
#else
	WBUFB(buf, 28 + c*size) = (p->party.item & 1) ? 1 : 0;
	WBUFB(buf, 28 + c*size + 1) = (p->party.item & 2) ? 1 : 0;
	WBUFL(buf, 28 + c*size + 2) = 0; // unknown
	WBUFW(buf, 2) = 28 + c*size + 6;
#endif

	if (sd) { // send only to self
		clif_send(buf, WBUFW(buf, 2), &sd->bl, SELF);
	}
	else if (party_sd) { // send to whole party
		clif_send(buf, WBUFW(buf, 2), &party_sd->bl, PARTY);
	}
}

 

  • 0
Posted

Okay next step would be if you're able to reproduce the bug on a clean rathena pull. If thats not the cause you already know, there is something wrong with your merge.

It's sometimes hard to find the cause of the problem but I encourage you to keep looking. Good luck!

 

ps: If you're curious if if some parts differ from rathena, I suggest you to use tools like WinMerge/meld to compare certain parts like `clif_party_info`. Spoiler: It seems like your not on the revision you think you are.

  • Upvote 1
  • 0
Posted
33 minutes ago, Jey said:

Okay next step would be if you're able to reproduce the bug on a clean rathena pull. If thats not the cause you already know, there is something wrong with your merge.

It's sometimes hard to find the cause of the problem but I encourage you to keep looking. Good luck!

 

ps: If you're curious if if some parts differ from rathena, I suggest you to use tools like WinMerge/meld to compare certain parts like `clif_party_info`. Spoiler: It seems like your not on the revision you think you are.

I'm aware it is not the exact same hash since I do apply every single update using winmerge to keep my emulator updated.

I also did copy clif.c pc.c party.c from the rathena git and I still have the same map server crash.

I'll try to reproduce it with a clean copy of rathena

  • 0
Posted (edited)
1 hour ago, Jey said:

Okay next step would be if you're able to reproduce the bug on a clean rathena pull. If thats not the cause you already know, there is something wrong with your merge.

It's sometimes hard to find the cause of the problem but I encourage you to keep looking. Good luck!

 

ps: If you're curious if if some parts differ from rathena, I suggest you to use tools like WinMerge/meld to compare certain parts like `clif_party_info`. Spoiler: It seems like your not on the revision you think you are.

Ok so I used a complete clean copy of rathena without gepard and nothing added. using 2017-05-17 client I got this error

6141325266.png  ac64f514a5.png 

 

Edited by NotKappa
  • Upvote 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...