Trinitycore: [335] INT(10) UNSIGNED Means in-game mail will fail in approx. 90 years

Created on 29 Jun 2016  路  10Comments  路  Source: TrinityCore/TrinityCore

Description:

INT(10) UNSIGNED is not big enough to handle UNIX timestamps into infinity

Current behaviour:

mail.expire_time and mail.deliver_time will overflow at: _2106-02-07 at 06h 28m 16s (24h time)_ which is approx. 90 years from the time of this post.

Expected behaviour:

The database should be robust enough to allow continued operation

Steps to reproduce the problem:

Max value of an INT(10) UNSIGNED is 4294967295 which is _2106-02-07 at 06h 28m 15s (24h time)_

  1. Attempt to insert 4294967296 into mail.expire_time and mail.deliver_time
  2. You will get an error: _WARNING CODE: 1264, Out of range value_

NOTE: 4294967296 is _2106-02-07 at 06h 28m 16s (24h time)_

Branch(es): 3.3.5 (perhaps 6.x, didn't check)

TC hash/commit: 2db9269ec1c06b5fccc45dc0a5b4f714f9b48804

TDB version: TDB_full_world_335.61_2016_04_11.sql

Operating system: N/A

NOTE: UNIX timestamps calculated using

http://www.csgnetwork.com/time2unixdscalc.html
http://www.csgnetwork.com/unixds2timecalc.html

Branch-3.3.5a Branch-master Comp-Core Invalid-IntendeWontFiBlizzlike Priority-Cosmetic

Most helpful comment

... really?

All 10 comments

probably almost the same thing(int limit), this happened in my server with the arena team charters '-'

Will the game even work (without patching) in 2038?

Will the game even work (without patching) in 2038?

The 2038 problem only effects signed 32-bit integers when interpreted as seconds since the epoch, so as long as we use unsigned, you don't have a problem until 2106.

I wonder though if Blizzard used 64-bit datatypes when they designed the client but only used 32-bit data. That would allow them flexibility as platforms change.

The sad thing is they keep "kicking the can" and not solving the problem. Most newer systems use signed 64-bit values for time which means even with that feature, WoW would still break in approx. 300 billion years, so be careful mailing purples to your main.

... really?

yeah, int limit fucked arena team charters on server that i play

In 2106 we will be fucked because of this issue.
And probably dead.

I won't be alive to see the issue manifest. Not sure if it will be fixed while I'm alive though.

... really?

In 2106 we will be fucked because of this issue.
And probably dead.

I won't be alive to see the issue manifest. Not sure if it will be fixed while I'm alive though.

Hey, think of your great grandkids... they may want to play "legacy" games just like the thriving Commodore 64 emulator communities today ;)

Anyway a bug is a bug, no matter how insignificant it may seem.

I really doubt you can run 32 binaries (wow.exe) or have ipv4 support on 2106.

I really doubt you can run 32 binaries (wow.exe) or have ipv4 support on 2106.

Sure you could. You could box up a machine today with Win 7, the WoW client and Trinity and have someone open it in a hundred years. As long as they play on localhost or connect it to another similar machine on a private LAN using a "legacy" router it will work fine ;)

At any rate, if you decide this is a "wont fix" bug that's probably OK too.

Was this page helpful?
0 / 5 - 0 ratings