Jump to content
  • 0
ThyroDree

Server received crash signal

Question

Running on Linux Centos 7:

Hosted from BuyVM

Error: Server received crash signal! Attempting to save all online characters!

Anyone knows how to fix this? this error shows up every 1~2 hours the server is running

Share this post


Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 0

for fix issue need first know what is isue.

You now showed stack or any info except crash.

run server under gdb and show call stack after it crashed.

 

Share this post


Link to post
Share on other sites
  • 0
31 minutes ago, 4144 said:

for fix issue need first know what is isue.

You now showed stack or any info except crash.

run server under gdb and show call stack after it crashed.

 

How can i run the server under gdb? 

Share this post


Link to post
Share on other sites
  • 0
47 minutes ago, ThyroDree said:

How can i run the server under gdb? 

gdb map-server
r

when it crashes,

type "bt full" and post the output here.

Share this post


Link to post
Share on other sites
  • 0

Which revision are you using?

I don't see that line anywhere nearby, modded? probably sd is null.

Share this post


Link to post
Share on other sites
  • 0
9 minutes ago, Dastgir said:

Which revision are you using?

I don't see that line anywhere nearby, modded? probably sd is null.

On the line 2131 on battle.c

                case SN_SHARPSHOOTING:
                case MA_SHARPSHOOTING:
                    skillratio += 100 + 50 * skill_lv;

                    if( sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_HUNTER)
                    skillratio *= 1.15;
                    break;

Share this post


Link to post
Share on other sites
  • 0
2 hours ago, ThyroDree said:

On the line 2131 on battle.c

                case SN_SHARPSHOOTING:
                case MA_SHARPSHOOTING:
                    skillratio += 100 + 50 * skill_lv;

                    if( sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_HUNTER)
                    skillratio *= 1.15;
                    break;

case SN_SHARPSHOOTING:
case MA_SHARPSHOOTING:
    if (sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_HUNTER)
        skillratio *= 1.15;
   else
        skillratio += 100 + 50 * skill_lv;
        break;

Share this post


Link to post
Share on other sites
  • 0

You need to check 'sd' is not NULL first. so like

 if (sd != NULL && sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_HUNTER)

If you have edited other source code, you will need to check it for all sorts of stuff isn't using null pointer. E.g. sc != NULL, tsd != NULL, etc.

Share this post


Link to post
Share on other sites
  • 0

Why not use sc(already defined and assigned in that function)? it would check with any other unit having status instead of just players.

if (sc != NULL && sc->data[SC_SOULLINK] != NULL && sc->data[SC_SOULLINK]->val2 == SL_HUNTER)

 

Share this post


Link to post
Share on other sites

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.   Restore formatting

  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.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.