Jump to content

Question

Posted (edited)

Im geting some errors but i need have more information about them, someone with more knowledge than me could giveme a hand ? i need all information posible from the errors that i get on L2server / log / error. :All help is welcome, Thanks a lot

 

I have Raid 0 SAS 15 k
Xeon E31220 , 4 cores , 3.10 GHz
16 GB ram ECC

 

Runing on a windows 2003

Console:
Iobufferpoolsize: 6100
User socket : 79
User(n) connected : 52
user playing: 53
user max : 79
Elapsed time: 10H 56M
Pending write: 5 450 294 , /8k (665

01/28/2014 14:33:13.343, [ioc.cpp][1190] Write to invalid socket.
01/28/2014 14:33:13.343, pending write > 2M
01/28/2014 14:33:13.343, [ioc.cpp][1190] Write to invalid socket.
01/28/2014 14:33:13.343, pending write > 2M
01/28/2014 14:33:13.343, [ioc.cpp][1190] Write to invalid socket.
01/28/2014 14:33:13.343, pending write > 2M
01/28/2014 14:33:13.343, [ioc.cpp][1190] Write to invalid socket.
01/28/2014 14:33:13.343, pending write > 2M

*When it start  server still get this shit for a while it can create big log error files.

*As i know is that server have pending to write 2M and trying all the time write to a invalid socket

*But dont know Why i get this error , and what i can do to solve ?

#

Other casual errors:

01/28/2014 07:04:14.687, [ioc.cpp][1212] CIOSocket::_Write - WSASend fail. error(10038)

*I get this one often.

 

01/28/2014 04:13:15.921, [c:\serverservice\l2server\ThreadLocalWorldMap.h][642] removing not linked item

01/28/2014 04:20:37.843, [DBSocket.cpp][9217] ReplyGiveItemToPet(0) failed. cannot find item in inventory

/2014 07:03:22.140, Invalid Memory (-1) on MemoryObject(498058)
01/28/2014 07:03:22.140, Caller : file[userSocket.cpp], line[8938]
01/28/2014 07:03:52.265, [DBSocket.cpp][9217] ReplyGiveItemToPet(0) failed. cannot find item in inventory



01/28/2014 07:06:16.312, [user.cpp][7904]PrivateStoreBuy request error. nItemServerId[-3469],

01/28/2014 07:11:23.015, [userSocket.cpp][2991]Invalid withdraw item. dbid[59], count[6144]

01/28/2014 07:12:29.390, [user.cpp][7920]PrivateStoreBuy request error. nItemPrice[0],

01/28/2014 14:12:09.781, invalid amount at file[userSocket.cpp], line[1380]

01/28/2014 08:35:15.906, error in movestraight3! [GeoData.cpp][1040]
01/28/2014 08:35:17.218, error in movestraight3! [GeoData.cpp][1040]

01/28/2014 08:39:52.046, inserting deleted object
01/28/2014 08:39:52.062, inserting deleted object

Edited by madocter

7 answers to this question

Recommended Posts

  • 0
Posted

Stop using c1.

 

It's horribly coded and half of those errors are indirect errors of other issues most likely caused by bad script + dll fixing combinations.

 

 

No one really knew how stuff worked back then, they just made direct assumptions on every hook.

Youd need to spend time researching c1 binary to figure out more and view the current dlls you use.

  • 0
Posted (edited)

That answer just made roll on the floor most likely.

He has no clue what you have said.

 

I know what he say . but i cant stop using C1 :)

Pending write error is who giving me problems the rest are just casual and never make a crash

Edited by madocter
  • 0
Posted (edited)

We can see how buffer pool size decrease meanwhile pending write increase. i still dont know why server trying write to some invalid socket ..

 

Iobufferpoolsize 4642

User socket 156

user connected : 35

user playing : 43

user max 150

Elapsed time 1D 13H

Pending write 17125000 , /8k (2090)

 

*In adition i want add that sometimes player get stucked at game and can't be kicked they get "access failed" when try enter to game.

This happend to players sometimes when they try 1) setup private store 2) they doing a trade.  then they get game freeze and force close l2

 

So pending write can be because of this ? i mean server try write to character that is not online and cant be kicked.. ?

 

 

 

 

ioc.cpp

 

Line 1190   if (bind(m_hSocket, (struct sockaddr*)&sin, sizeof(sin))) {
        AddLog("bind error %d", WSAGetLastError());
        goto fail;
    }


INIT_ID(CIOServer)

CIOServer::CIOServer()
{
	guard(CIOServer::CIOServer());

	m_hSocket = INVALID_SOCKET;
	m_hAcceptEvent = WSA_INVALID_EVENT;

	unguard;
}

CIOServer::~CIOServer()
{
	guard(CIOServer::~CIOServer());

	Close();

	unguard;
}

void CIOServer::Close()
{
	guard(void CIOServer::Close());

	if (m_hSocket != INVALID_SOCKET) {
		closesocket(m_hSocket);
		m_hSocket = INVALID_SOCKET;
	}
	if (m_hAcceptEvent != WSA_INVALID_EVENT) {
		WSACloseEvent(m_hAcceptEvent);
		m_hAcceptEvent = WSA_INVALID_EVENT;
	}

	unguard;
}

BOOL CIOServer::Create(int nPort)
{
	guard(BOOL CIOServer::Create(int nPort));

	m_hSocket = socket(AF_INET, SOCK_STREAM, 0);
	if (m_hSocket == INVALID_SOCKET) {
		AddLog("socket error %d", WSAGetLastError());
		return FALSE;
	}
	struct sockaddr_in sin;
	sin.sin_family = AF_INET;
	sin.sin_addr.s_addr = htonl(INADDR_ANY);
	sin.sin_port = htons(nPort);

	if (bind(m_hSocket, (struct sockaddr*)&sin, sizeof(sin))) {
		AddLog("bind error %d", WSAGetLastError());
		goto fail;
	}
	if (listen(m_hSocket, 5)) {
		AddLog("listen error %d", WSAGetLastError());
		goto fail;
	}

	m_hAcceptEvent = WSACreateEvent();
	WSAEventSelect(m_hSocket, m_hAcceptEvent, FD_ACCEPT);
	if (!RegisterWait(m_hAcceptEvent)) {
		AddLog("RegisterWait error on port %d", nPort);
		goto fail;
	}
	return TRUE;
fail:
	Close();
	return FALSE;

	unguard;
}
Edited by madocter
  • 0
Posted

I think you mostly have a socket problem, mostly being flooded. Extending and adding a socket filtering option would be good, if you limit the sockets and prevent the flooding.

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


  • Posts

    • NEW HIDDENSTASH KEY SYSTEM INTRODUCED TO THE SITE   **Earn While You Spend - Introducing HS Cashback!**   Every purchase on our site now rewards you with **HS Keys cashback**   EVERY ONE WHO REGISTERS IN SITE UNTILL 15TH OF MAY GETS 2000 HS KEYS IN HES BALANE   Here's how it works:       **1 USD = 1000 HS Keys**   **Get 3% cashback** on every purchase   **Use your HS Keys to **save on your next order**   ---   ### ⚡ Why this is awesome   * Every order gives you value back   * Stack it with promos & HS usage   * Turn your spending into future discounts   ---   ### Example   Spend **$10** → Get **300 HS Keys** back   Spend **$50** → Get **1500 HS Keys** back   ---   ### Smart system (built for fairness)   * Cashback is rounded to keep things balanced   * Prevents abuse from tiny orders   * Rewards real buyers   ---   ### Start earning now   Every purchase = progress toward your next discount   Shop now and build your HS balance!   #cashback #gamingdeals #d2r #rewards #loyalty   Stay safe out there, heroes - and happy hunting! www.d2rhiddenstash.com     We just launched our new Affiliate Program — and it’s the easiest way to earn HS Keys.   Invite your friends using your personal link.   Example: If your friend spends $10 → you get 300 HS Keys No limits. No effort. Just share your link.   Get your referral link here: www.d2rhiddenstash.com/profile     Start earning today
    • https://jumpshare.com/share/L45ApA5PVrGN2O5Ua5pQ   Skill synchronization with the server: Launching and synchronizing animations, launching and synchronizing effects. All of this is tied to the server's timing  
  • 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..