14

Employee ID over 32767? You're gonna have a bad time.

 3 years ago
source link: http://rachelbythebay.com/w/2013/04/15/bits/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Employee ID over 32767? You're gonna have a bad time.

One time, I started working at a place where I needed to establish a whole bunch of user accounts beyond my "main signon". There were credentials for this system, and that system, and this other thing, and versions for me, my workstation, my laptop, and so on.

One of them didn't let me go through the usual "self-service" process. Normally, you'd just go out there and drop in your key, and it would let you into the system. This time, it didn't work.

I asked around and found out that other people who had started around the same time as me also were having problems getting into the system. Around this time, I noticed my employee ID was up around 33000. In other words, it was just a bit above 32767. The same applied to anyone who had started in the last month or two.

I never heard an official explanation, but I wouldn't be surprised if they had used a signed 16 bit value for some kind of ID field. Once it hit 32K, that was the end of the usable positive number space!

My account did eventually come online, but something peculiar happened. Instead of having ID number 33000-something to match my employee ID, it was actually 3300-something. I guess they just sliced off the last digit and found that the original #3300 person was gone, so they let me have that person's slot. I guess it was easier than changing their schema.

I can only wonder how long they had to do this hack job. Thinking about it now, this should have been a warning flag about the design practices of certain systems, but I wasn't looking for that sort of thing at the time.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK