Jump to content
  • 0

Problem With My Server It Crashes Without Reason


Question

Posted

hello there can u help me please my server crash without reason or someone is trying to hack it i dont know

and i see log it show me this.

WARN  com.mchange.v2.resourcepool.BasicResourcePool@5939d7b1 -- an attempt to checkout a resource was interrupted, and the pool is still live: some other thread must have either interrupted the Thread attempting checkout!
java.lang.InterruptedException
	at java.lang.Object.wait(Native Method)
	at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1315)
	at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:557)
	at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:477)
	at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:525)
	at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
	at com.l2jfrozen.util.database.L2DatabaseFactory_c3p0.getConnection(L2DatabaseFactory_c3p0.java:147)
	at com.l2jfrozen.gameserver.network.serverpackets.CharSelectInfo.loadCharacterSelectInfo(CharSelectInfo.java:234)
	at com.l2jfrozen.gameserver.network.serverpackets.CharSelectInfo.<init>(CharSelectInfo.java:69)
	at com.l2jfrozen.gameserver.thread.LoginServerThread.run(LoginServerThread.java:365)
ERROR L2DatabaseFactory: getConnection() failed, trying again
java.sql.SQLException: An SQLException was provoked by the following failure: java.lang.InterruptedException
	at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)
	at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:65)
	at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:62)
	at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:531)
	at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
	at com.l2jfrozen.util.database.L2DatabaseFactory_c3p0.getConnection(L2DatabaseFactory_c3p0.java:147)
	at com.l2jfrozen.gameserver.network.serverpackets.CharSelectInfo.loadCharacterSelectInfo(CharSelectInfo.java:234)
	at com.l2jfrozen.gameserver.network.serverpackets.CharSelectInfo.<init>(CharSelectInfo.java:69)
	at com.l2jfrozen.gameserver.thread.LoginServerThread.run(LoginServerThread.java:365)
Caused by: java.lang.InterruptedException
	at java.lang.Object.wait(Native Method)
	at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1315)
	at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:557)
	at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:477)
	at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:525)
	... 5 more
INFO  Disconnecting all players from the Server...
INFO  Saving all players data...

Recommended Posts

  • 0
Posted

 

Putting things to null is, at best, pointless.

 

That

        finally
        {
            CloseUtil.close(con);
            con = null;
        }

is also useless, since JDK7 you can use try-with-ressources statements (closing automatically opened ressources).

 

https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html

 

Finally there isn't only a single issue, I count at least 5. And the InterruptedException comes while you try to shutdown server.

INFO  SIGTERM received. Shutting down NOW!

why acis still has sql connections < java 7 since you already know that?

about the issues its more indeed but i read 2-3 comments, one piece of advice stop using this pack will save you time and brain damage.

  • 0
Posted (edited)

why acis still has sql connections < java 7 since you already know that?

Example or never happened :) With such writting style, you get an error on aCis sources as far as I remember.

Edited by SweeTs
  • 0
Posted (edited)

Why people likes used finally in try?

 

finnaly has other uses rather than only properly handling connection closing post java 7.

 

try

{

          return null;

}

finally

{

        //code

}

Edited by xxdem
  • 0
Posted

finnaly has other uses rather than only properly handling connection closing post java 7.

 

try

{

          return null;

}

finally

{

        //code

}

 

But not everywhere.

  • 0
Posted (edited)

why acis still has sql connections < java 7 since you already know that?

 

Dunno which rev or which part of the code you saw, but all connections are handled by try-with-ressources statements since... Years. I don't try-with-ressources PreparedStatement.

Edited by Tryskell
  • 0
Posted

I am sorry I was not very clear here is an example of what I meant:

try (Connection con = L2DatabaseFactory.getInstance().getConnection())
{
       PreparedStatement statement = con.prepareStatement("blabla");

}

catch(Exeption e){}

this is the courent state of aCis

 

try (Connection con = L2DatabaseFactory.getInstance().getConnection();

            PreparedStatement statement = con.prepareStatement("blabla"))
{
      // code

}

catch(Exeption e){}

this is what I believe should be more effective on handling the database connections

pros less code, better handle

- time to code it

if you want I can discuss with you in private about a reworked database connection, from small tests I did is faster, but faster does not meant always reliable, I am talking about the c3p0 library.

anything else send me a message cause I am out of topic. BB:)

  • 0
Posted

I am sorry I was not very clear here is an example of what I meant:

try (Connection con = L2DatabaseFactory.getInstance().getConnection())

{

       PreparedStatement statement = con.prepareStatement("blabla");

}

catch(Exeption e){}

this is the courent state of aCis

 

try (Connection con = L2DatabaseFactory.getInstance().getConnection();

            PreparedStatement statement = con.prepareStatement("blabla"))

{

      // code

}

catch(Exeption e){}

this is what I believe should be more effective on handling the database connections

pros less code, better handle

- time to code it

if you want I can discuss with you in private about a reworked database connection, from small tests I did is faster, but faster does not meant always reliable, I am talking about the c3p0 library.

anything else send me a message cause I am out of topic. BB:)

 

 

you dont even know what you're talking about. At the point where you close the connection all its resources including ResultSets and Statements will close aswell.

  • 0
Posted

you're wrong here, if you dont use statement.close(); result.close(); you have unclosed stuff running around, if you use it like my example and if you see tryskell's link you will see what I mean, and you dont have to use statement.close(); result.close(); on every sql connection

 

ps "At the point where you close the connection all its resources including ResultSets and Statements will close aswell."

if I close with

statement.close(); result.close();

or this exapmle:

try (Connection con = L2DatabaseFactory.getInstance().getConnection())
{
       PreparedStatement statement = con.prepareStatement("blabla");

}

catch(Exeption e){}

because only in first you are right but as I explained and plus is old way

 

ps I am not working on this more than 6 months now but I know what I am talking about

  • 0
Posted (edited)

you're wrong here, if you dont use statement.close(); result.close(); you have unclosed stuff running around, if you use it like my example and if you see tryskell's link you will see what I mean, and you dont have to use statement.close(); result.close(); on every sql connection

 

ps "At the point where you close the connection all its resources including ResultSets and Statements will close aswell."

if I close with

statement.close(); result.close();

or this exapmle:

try (Connection con = L2DatabaseFactory.getInstance().getConnection())

{

       PreparedStatement statement = con.prepareStatement("blabla");

}

catch(Exeption e){}

because only in first you are right but as I explained and plus is old way

 

ps I am not working on this more than 6 months now but I know what I am talking about

 

you dont know shit lmao, con.close() will invoke closable.close to all closables that this connection object generated, at least as far as the database java and rdbms side are properly configured and coded. But in a project like aCis theres no doubt that thiats the case.

Edited by xxdem
  • 0
Posted

That is why there is the Hibernate ORM for those who can't properly handle the SQL connections :lol:

  • 0
Posted

After reading all these replies i will reconsider 3 times to open a topic in dev help if i stuck somewhere. That guy asks if it has unclosed connections due to rebirthmanager you guys ended up to solve what to use in general. Obviously that guy is a newbie , searching for help he doesnt get a shit of what are you guys talk about.

  • 0
Posted (edited)

The answer has been given. He have to close the connection following actual structure or simply rework the connection. And then.. discussion has begun, which is nothing bad.

Edited by SweeTs
  • 0
Posted

The answer has been given. He have to close the connection following actual structure or simply rework the connection. And then.. discussion has begun, which is nothing bad.

Well if i was an author i will just be like (?) what i got to do now.. Some people arent smart enought to get something quick, i guess if you end the chat here and repost his solution would be better. 

  • 0
Posted

he actually must admit(but he wont) that he's wrong, I am right (there are alot of examples on google with better handle) and aCis lucks of a good SQL connection management actually its half code done in try-with-resources and plus a better DatabaseFactory management can be achieved as I prementioned with changing c3p0 jar, the aCis guys can make their tests and see what I am talking about.

Guest
This topic is now closed to further replies.



  • Posts

    • EspadaWorld Reborn - Lineage 2 High Five Private Server Official Website: https://l2espadaworld.com   GitHub Presentation: https://github.com/worldespada-cloud/EspadaWorld   About EspadaWorld Reborn   EspadaWorld Reborn is a cinematic Lineage 2 High Five private server project built on a customized FandC / L2J-style High Five core. The project is focused on balanced gameplay, PvP competition, PvE progression, custom systems, vote rewards, rankings, protection integration, website features, and long-term stability. EspadaWorld is not a clean stock pack. The server has been extended with custom systems, website integration, vote reward logic, protection-related modules, custom instance content, gameplay improvements, and server-side adjustments. Server Foundation Chronicle: Lineage 2 High Five Base: FandC High Five core, heavily customized Core style: L2J-based server architecture Build system: Apache Ant Java target: Java 25 Database: MySQL Project type: Active development / production server environment Main Features - Custom Lineage 2 High Five server environment - FandC-based core with custom improvements - Custom Community Board systems - Player ranking systems - PvP-focused gameplay logic - PvE progression support - Custom Espada instance and custom gameplay content - Vote reward system with multiple vote website integrations - Unified .getreward command - Website, account, ranking, vote, media, and download integration - Protection module integration - Admin tools and server management systems - Datapack and server packaging scripts Vote Reward System EspadaWorld includes a custom vote reward flow based around the .getreward command. The system verifies votes from all enabled vote websites and gives one unified global reward only after all required votes are confirmed. Current vote integration includes: - iTopZ - HopZone - L2Network - L2JBrasil - L2TopZone - L2Votes Vote system features: - Unified reward after all votes are confirmed - Configurable global reward list - Item amount and chance configuration - Cooldown / reuse protection - HWID / IP-based reward protection - Debug logging for vote verification - Anti-abuse logic for repeated reward claims Protection & Security The project includes protection-related modules and integration points designed to improve server and client-side security. Protection-related areas include: - Runtime protection module integration - Client protection support - Server-side validation systems - Anti-abuse logic around vote rewards and account actions - Configuration-driven security behavior - Release packaging support for protected builds Private protection details, keys, internal configuration, and production security data are not public. Custom Gameplay Content EspadaWorld Reborn includes custom gameplay work designed to give the server its own identity while keeping the Lineage 2 High Five feeling. Examples of custom content and systems: - Custom Espada instance - PvP-oriented systems and zones - PvE progression systems - Ranking and competition systems - Community Board extensions - Custom HTML and datapack content - Gameplay scripts and server-side feature extensions - Vote reward progression Website & Community Platform EspadaWorld also includes a modern web platform connected to the server community. Website features include: - Modern responsive website - Account panel - Download section - Vote section - Ranking pages - Media section - News and information system - Admin-controlled website settings - Theme/template system - SEO optimization - Performance optimization The website has been optimized for speed, accessibility, best practices, and SEO, offering a clean public presentation for the server and community. Useful Links Website: https://l2espadaworld.com   GitHub Presentation: https://github.com/worldespada-cloud/EspadaWorld   EspadaWorld Reborn is a cinematic Lineage 2 High Five private server project built on a customized FandC-based core.
    • Hi,im looking for "stable" mid rate high five l2j files source included,i prefer not clean files but something already used by another server in the past,if you have something intrested and not shared pm me.
    • Hello, We are currently looking for an experienced Lineage 2 High Five client developer for our project EldoriaWorld. At the moment we need help with: High Five client edits Launcher integration Interface/UI improvements Branding changes Textures/icons/loading screens System modifications Client optimization We already have website, launcher setup and server infrastructure prepared. If interested, please message me with: your experience previous projects/work contact details Contact: Telegram: FrankJan Discord: LosBanannos Regards, Frank EldoriaWorld
    • Hi guys, I am interested. Added you on Telegram. Please reply.
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and 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..