Underflow Posted June 5, 2010 Author Share Posted June 5, 2010 … Link to comment Share on other sites More sharing options...
balliztik1 Posted June 5, 2010 Share Posted June 5, 2010 Ah, the fun of IOCP.Correct me if I'm wrong, someone, but IOCP uses UDP to send its packets. This means that whatever packet arrives will be accepted and code will run. Another socket system, Winsock, uses TCP, which is a stream protocol, meaning that packets are automatically in order.There are several fixes for this, none of which are easy. One involves writing some kind of system to enforce order on the packets in UDP. Another involves altering the IOCP system in Eclipse to use TCP instead. I read of an alternate IOCP system which does this. Last, you could switch Eclipse over to Winsock. Eclipse Origins utilizes Winsock, and Damian has put it on his list of changes for the final version of Eclipse Stable.It's likely I've had this problem before, but it seems like it could strike randomly, so there's no telling when it happened or if I realized it. Getting away from this system is the best way to avoid it, though. Link to comment Share on other sites More sharing options...
Robin Posted June 5, 2010 Share Posted June 5, 2010 No, IOCP is TCP. The client uses Winsock setup for TCP.The IOCP implementation is just terrible.Chances are it's a buffering problem. Link to comment Share on other sites More sharing options...
Underflow Posted June 5, 2010 Author Share Posted June 5, 2010 I didn't change anything about buffering. A friend who code a MMORPG with Elysium implement IOCP has the same problem… Link to comment Share on other sites More sharing options...
Robin Posted June 5, 2010 Share Posted June 5, 2010 Yeah, I'm not accusing you of breaking it, pal. It's broken in every version of Eclipse. Link to comment Share on other sites More sharing options...
Underflow Posted June 5, 2010 Author Share Posted June 5, 2010 Ok, i'll check the dll code and try to fix it. That's I wanted to know. You have the same problem with the original code ? Link to comment Share on other sites More sharing options...
Robin Posted June 5, 2010 Share Posted June 5, 2010 -shrug-I've known the thing was terrible since Ron originally made it. Never used it in my life. Link to comment Share on other sites More sharing options...
Underflow Posted June 5, 2010 Author Share Posted June 5, 2010 Do you know any other multithreaded server ? Because IOCP is buggy : I just found a memory leak and there is this problem… Link to comment Share on other sites More sharing options...
Kimimaru Posted June 5, 2010 Share Posted June 5, 2010 Switch to WinSock and you won't have anymore problems like this. Link to comment Share on other sites More sharing options...
Underflow Posted June 5, 2010 Author Share Posted June 5, 2010 The memory leak is not really important because it's only 3-4MO… Link to comment Share on other sites More sharing options...
Robin Posted June 6, 2010 Share Posted June 6, 2010 @Underflow:> The memory leak is not really important because it's only 3-4MO.The IOCP memory leak can cause Out of Memory errors.It's basically just JetByte's old .dll with the memory pool ripped open to account for Mirage's horrible string packets.Origins uses Winsock and sends packets as byte arrays. It has a self-contained buffer class which can handle everything for you, as well.It'll also be converted to Winsock2 in the future so it won't die because of IPv6\. xD Link to comment Share on other sites More sharing options...
Underflow Posted June 6, 2010 Author Share Posted June 6, 2010 How can I notice the memory leak you're talking about ? Link to comment Share on other sites More sharing options...
Robin Posted June 6, 2010 Share Posted June 6, 2010 Simply run a popular server for a long time.When I was hosting Silverdale we had dozens of people logging on and off each day, with up to 20 people on at peak times.My RAM would get destroyed because of the memory leak in the socket system. If I hosted it for a couple of days without restarting my computer I'd simply get an Out of Memory error. Link to comment Share on other sites More sharing options...
Underflow Posted June 6, 2010 Author Share Posted June 6, 2010 I run on my server 100.000 connections / deconnections, nothing happened ! Link to comment Share on other sites More sharing options...
Robin Posted June 6, 2010 Share Posted June 6, 2010 Run them normally. You won't get any results from simple connections & disconnections. Link to comment Share on other sites More sharing options...
Underflow Posted June 6, 2010 Author Share Posted June 6, 2010 I'll now try with connection > packet > deconnectionEdit : Still Nothing… Link to comment Share on other sites More sharing options...
Robin Posted June 6, 2010 Share Posted June 6, 2010 Again, a single packet isn't going to do much.Thousands of packets are sent/received during the average play time. Link to comment Share on other sites More sharing options...
Underflow Posted June 6, 2010 Author Share Posted June 6, 2010 I'm sending 10 packets from 1000 simultaneous connections… Each thread connect a socket and send 10 packet then disconnect.I did that 100.000 times, still nothing. Link to comment Share on other sites More sharing options...
kris_hole Posted June 6, 2010 Share Posted June 6, 2010 thats only 10000 packets…the server recieves that many in about 3 minutes(or less) from 1 user.... Link to comment Share on other sites More sharing options...
Underflow Posted June 6, 2010 Author Share Posted June 6, 2010 It's 1.000.000 packets and 100.000 connections. Link to comment Share on other sites More sharing options...
silentdemonic Posted June 6, 2010 Share Posted June 6, 2010 So the Server for ES crashes after a long run time ? Ive had my server up for about 2 weeks now - 5 people logging in to edit / map / discuss constantly and no issues. Am I a rarity ? Link to comment Share on other sites More sharing options...
Kimimaru Posted June 6, 2010 Share Posted June 6, 2010 @silentdemonic:> So the Server for ES crashes after a long run time ? Ive had my server up for about 2 weeks now - 5 people logging in to edit / map / discuss constantly and no issues. Am I a rarity ?I wouldn't necessarily say a "rarity" because the way the server performs does also depend on your computer's specifications. If your computer is excellent then you will probably have fewer problems since your server will run faster. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now