Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

TimeManager RejectedExecutionException

Newbie Spellweaver
Joined
Apr 26, 2015
Messages
10
Reaction score
0
I am aware that the threading is clearly being shutdown by the server itself, the issue is that there is way too much scripts involved and to fix this error it's like finding a needle in a haystack. Anyone knows how would I go around the sudden shutdown that TimeManager has.

It stops all the threads and the server literally crashes because of it.

fc66b92504567a8e091a63dd51cc8e52 - TimeManager RejectedExecutionException - RaGEZONE Forums

I found that TimeManager.java has a stop() method that gets utilized in LoginServer.java , LoginWorldInterfaceImpl.java , ShutdownServer.java , etc ...

It stops at random threads on the pool and I would like to know how would I go around to debug this?
 

Attachments

You must be registered for see attachments list
Junior Spellweaver
Joined
Sep 16, 2017
Messages
156
Reaction score
36
I found that TimeManager.java has a stop() method that gets utilized in LoginServer.java , LoginWorldInterfaceImpl.java , ShutdownServer.java , etc ...
Mmm, I understand the need to stop TimerManager instance as a last step of ShutdownServer, but the other occurrences feel strange.

Could you please post the portion of LoginServer.java where the TimerManager instance is called and where it's closed?
 
Upvote 0
Newbie Spellweaver
Joined
Apr 26, 2015
Messages
10
Reaction score
0
Okay, so here is the pastebin with the whole Login.java file:

It seems like the TimerManager starts at line 244 and Login.java has a shutdown() void method that has the TimerManager.stop() method which might be the cause of TimerManager shutting down, not sure.
 
Upvote 0
Junior Spellweaver
Joined
Sep 16, 2017
Messages
156
Reaction score
36
Mmm, that one is actually correct, as it's called at server shutdown; it doesn't infulence our case. It's structured differently on my server, so the fact that there was a stop call in LoginServer made me suspicious. c:

However, we're gonna need a different scenario, where shutdowns are not involved; mind checking if there's calls to the TimerManager instance's stop() function in functions that don't involve shutdown, please? If we find that, that'll be where we should be looking at.
 
Upvote 0
Newbie Spellweaver
Joined
Apr 26, 2015
Messages
10
Reaction score
0
The problem with this RejectedExecutionException is that it will be really hard to find, it is like finding a needle in a haystack giving the fact that the TimerManager.java is connected with a lot of scripts, the only scripts in which it actually shows any kind of usage of the stop() method of TimerManager is in Login.java and Shutdown.java , . But there is a shutdown() method in Login.java that has the TimerManager.stop() method in usage, and the shutdown() method in Login.java is used in LoginWorldInterfaceImpl.java which at the same time has another shutdown() method that is used in WorldChannelInterface.java with "lwi" being the LoginWorldInterface reference to LoginWorldInterface.java afterwards, the WorldChannelInterface.java has another shutdown() method that is used in all those :

I could continue, as said it is like finding a needle in a haystack, everything is connected and it is Indeed driving me crazy in how I would go around trying to debug this. :sneaky2:



That is why I am trying to find a way to actually get useful information from all the threads that are being processed by the ScheduledThreadExecutor because that is the "gateway" where all the threads get passed by, if I could find where it stops I could try to figure on why it stops in those spots even though I already got this same error a few times, each time with a different Thread Number defined by the AtomicInteger though.



Mmm, that one is actually correct, as it's called at server shutdown; it doesn't infulence our case. It's structured differently on my server, so the fact that there was a stop call in LoginServer made me suspicious. c:

However, we're gonna need a different scenario, where shutdowns are not involved; mind checking if there's calls to the TimerManager instance's stop() function in functions that don't involve shutdown, please? If we find that, that'll be where we should be looking at.
And also answering to your sentence, no, the only places where the TimerManager's stop() method is used is in Login.java and in the shutdown() method. Afterwards, it might be connected to everything I explained in my second post with all the imgur images.
 
Upvote 0
Back
Top