0.9.13j Patch Notes

"
anubite wrote:
Out of curiosity, can we hear any details about what was causing the realm crash?


It boiled down to a function like this.

///Returns negative number if a < b, positive if a > b and 0 if a == b
int compare( unsigned a, unsigned b )
{
return a - b;
}

See if you can spot the bug. I can tell you though that the effects that it had on the realm were very hard to correlate back to this bit of code.
Path of Exile II - Game Director
"
Kabraxis wrote:
"
"
Chris wrote:
Version 0.9.13j
  • Ladders for race events now persist forever after the event has ended.


Will this help in creating some kind of ladder ladder? Something that gives points to people based on how they finish, and if so will you be able to allocate points retroactively starting at OB?



;)


Haha! That was great.

Also, I like all the changes! Top 25 death messages seems like a very good idea!
Nvm. My Bad, all workin good now.
GGG - Why you no?
Last edited by JoannaDark on Dec 26, 2012, 7:08:41 PM
"
TheuberClips wrote:
Hmm, you sure you can handle the 30 second updates when Open Beta comes out? ._.


The ladder is now pulled out in to it's own backend service, which we can put on it's own database server now. This was done as a performance enhancement in preparation for open beta, but as a side effect it means that ladder updates are disassociated with character saves, so we can put different timers on them.
Path of Exile II - Game Director
improvements on the side of Desync?
"
Jonathan wrote:
"
anubite wrote:
Out of curiosity, can we hear any details about what was causing the realm crash?


It boiled down to a function like this.

///Returns negative number if a < b, positive if a > b and 0 if a == b
int compare( unsigned a, unsigned b )
{
return a - b;
}

See if you can spot the bug. I can tell you though that the effects that it had on the realm were very hard to correlate back to this bit of code.


Hmm, well it's returning an integer, which isn't specified whether it's signed or unsigned. If you have two very large unsigned numbers, and the one is negative and being subtracted from a positive, you could get a number larger than what a signed integer can hold? That would be my guess. The result would be an unsigned number being converted into a singed one, which could result in a realm crash if a function didn't expect a certain kind of comparison.
My Keystone Ideas: http://www.pathofexile.com/forum/view-thread/744282
Last edited by anubite on Dec 26, 2012, 5:20:19 PM
"
anubite wrote:
"
Jonathan wrote:
"
anubite wrote:
Out of curiosity, can we hear any details about what was causing the realm crash?


It boiled down to a function like this.

///Returns negative number if a < b, positive if a > b and 0 if a == b
int compare( unsigned a, unsigned b )
{
return a - b;
}

See if you can spot the bug. I can tell you though that the effects that it had on the realm were very hard to correlate back to this bit of code.


Hmm, well it's returning an integer, which isn't specified whether it's signed or unsigned. If you have two very large unsigned numbers, and the larger one is negative and being subtracted, you could get a number larger than what integer can hold? That would be my guess.


That is basically correct (but not quite), int issigned most likely, that can overflow. A simple fix would be to use 2x the bitdepth of a and b, so if they were 32 bit, you'd convert and do it with 64 bits.
How about having death notes for anyone that dies over a certain lvl threshold? (like 80+)

Would like to see something along those lines for longer duration ladders.
"
Chris wrote:

Ladders for race events now persist forever after the event has ended.


I probably shouldn't doubt you guys, but I'm quite wary of this. LotRO did the same thing with their PvP Ladder system, the conclusion was - when faced with a large amount of players - a bottleneck of information trying to hit the client server all at once, thus resulting in some pretty bad lag issues and crashes. They then went on to include this in their MyLotro "armory" system for everything, which made it even worse. Granted it's taking it from a 3min to a 30s time frame, gotta wonder if this will be too much information for the server to process in that time span, especially as the game continues to grow.
Last edited by Elynole on Dec 26, 2012, 6:56:55 PM
"
Jonathan wrote:
///Returns negative number if a < b, positive if a > b and 0 if a == b
int compare( unsigned a, unsigned b )
{
return a - b;
}


a - b > max(int) which overflowed and made a terrifically huge negative number. The side effect being that a was much bigger than b, but the comparison reported it as being much smaller than b. Or vice versa.

Report Forum Post

Report Account:

Report Type

Additional Info