The following warnings occurred:
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 861 - File: showthread.php PHP 7.3.33 (Linux)
File Line Function
/showthread.php 861 errorHandler->error



 
Hi there Guest,  
Sign in here: Login through Steam



  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 
04/10/2020 - The Bruhssx moment.

#1
Today marks one of my greatest fuck ups in the some 7 years that I've been working with gmod Inventory systems.

Last night, I rushed out a fix for a major bug, with what I thought was extensive testing. I simply didn't rejoin to test if everything was being saved/loaded properly after the fix, I assumed it was all good. Boy was I wrong.

This small 1 line oversight caused the worst duping FRG has ever seen on this scale. I was sleeping most of the day, so I woke up late to pretty much pure chaos. After working on it from 8Pm to what is now going on 5AM. I can confidently say I have cleaned up most of this mess I have caused. Not ALL of it, but most.

All in all there were a lot of high end items, and coins duped. Surprisingly a very FEW amount of people actually exploited this.

I ended up having to scramble and think of quick ways to get and analyze the data we have, due to my fuckup, checking item unique ID's wasn't an option (the fuck up stems from the item UID's actually changing upon putting them in storage, due to a 1 line oversight), which is the foundation for my robust dupe detection methods. So all of these completely flew under my detection systems.

I wrote a script to get all players who've played since I applied the fix above, and then go through all of their items in every database (bank, inventory, storage, etc), print out any suspicious stack amounts to a file, then myself and the awesome staff in discord tediously went through and picked out the really suspicious entries. Which I manually went in and repaired.

After that I had to write a system to use the same player list above, but instead cross-reference every single item with every single other item, from the pool of players. This allowed me to print a list of items that were likely dupes (matching stats/traits is HIGHLY unlikely for a lot of weapons, as they are saved as float values (0 - 1 with decimals)). After I did this, the awesome staff team yet again helped us out greatly, by helping me go through every entry and add the really suspicious ones to a spreadsheet.



Once I had this data, I had to implement various solutions. One of them was automated, the rest I fixed by hand. The automated one added any items that were at risk of being deleted, but weren't dupes, to the Item Queue from storage. So when you join if you get spammed with a ton of items, they were removed from your storage devices due to this bug potentially breaking them. If you happen to get multiple of an item, or notice one is duped, please do inform me.


TL;DR - I fucked up, staff is awesome and helped me out greatly by going through a buttload of logs. when you join if you get spammed with a ton of items, they were removed from your storage devices due to this bug potentially deleting those specific items. If you happen to get multiple of an item, or notice one is duped, please do inform me.

I will be booting the servers back up momentarily. Thank you all for your support, and I'm terribly sorry for the major inconvenience I have caused you all. I'll make it up to you Smile
Reply



Messages In This Thread
04/10/2020 - The Bruhssx moment. - Brassx - 04-11-2020, 07:28 AM

Forum Jump:


Users browsing this thread:
5 Guest(s)