Jump to content
×
×
  • Create New...
  • 0

channel1 down checkpoint shutdown gamerev 34083


servan12

Question

  • Answers 11
  • Created
  • Last Reply

Top Posters For This Question

11 answers to this question

Recommended Posts

  • 0

Because it's in the libthecore folder

 

/usr/src/mainline/Srcs/Server/libthecore/src/signal.c

 

RETSIGTYPE checkpointing(int sig)
{
    if (!tics)
    {
	sys_err("CHECKPOINT shutdown: tics did not updated.");
	abort();
    }
    else
	tics = 0;
}

I think it's not the gamefile's problem.

 

Link to comment
Share on other sites

  • 0

Try to run sequence patcher and apply to your client & server. Honestly, i was look for this errror message in 40k sf source and i cant find it.

 

sequence was

 

 

Because it's in the libthecore folder

 

/usr/src/mainline/Srcs/Server/libthecore/src/signal.c

 

RETSIGTYPE checkpointing(int sig)
{
    if (!tics)
    {
	sys_err("CHECKPOINT shutdown: tics did not updated.");
	abort();
    }
    else
	tics = 0;
}

I think it's not the gamefile's problem.

 

 

where is problem?

Link to comment
Share on other sites

  • 0
  • Honorable Member

update_?

Ymir enabled an anti-starvation system:

    signal_timer_enable(30);

    signal(SIGVTALRM, checkpointing);
They set a SIGVTALRM signal that calls (via kernel) the checkpointing function every 30 seconds of effective execution time.

Considering this:

int idle()
{
...
	while (passed_pulses--) {
		heartbeat(thecore_heart, ++thecore_heart->pulse);

		// To reduce the possibility of abort() in checkpointing
		thecore_tick();
	}
	CHARACTER_MANAGER::instance().Update(thecore_heart->pulse);
	db_clientdesc->Update(t);
...
}
The bug will appear if such functions will spend more than 30 seconds to be completely executed. (still talking about execution time and not real one)

A quest containing a "while true begin end" will also cause such error and the game will be crashed after 30 seconds.

If you still have the game.core generated by that crash and the relative game binary, I'll try to analyze it. (it should contain where the presumed "starvation" is)

Otherwise, you'll be fucked up.

You can even try to remove the abort() call via dif, but you could still get a freezed game if it's a real starvation.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.