Items Disappearing and Doubling.

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Items Disappearing and Doubling.

    Your name: Volar


    Your steam id: STEAM_0:1:25306470



    Description of the bug: Every time the Server crashes or restarts I'm getting reports of Players items disappearing or suddenly having extras.



    How to recreate the bug: Crash the server and ask around.



    Does the bug cause a server crash?: Not to my knowledge.



    Items, money, etc lost due to this bug. Please include inventory and stats screenshots if you have them:


    This is a Photo Taken after Westsmoke gave me his Extra spawned Lockpick 3. I had him give it to me so we could test if next crash it'd disappear or not. It poofed.



    Disappearing Inventory Items - Is such an instance.




    Something is causing items to Duplicate and just disappear, some reappear after a few crashes, others don't we need this looked into.

  • At the moment , myself , and a few other players I have spoken to , are afraid to "stock up" on certain items (revolvers , printing supplies , etc.) It seems to be difficult for me to gather evidence regarding this issue. I've taken dozens of inventory screenshots , but still haven't captured any significant losses or gains. Sometimes , unexpected server restarts have caught me off guard with the screenshot evidence gathering idea. However , I will continue my attempts to gather info on this situation.
  • Honestly if theres noone capable of bugfixing on the current plugin, I think it's the best route.
    I've started playing with the sourcecode but those are only very minor tweaks and it's mainly been research up to this point.

    This plugin is a masterpiece, but shouldnt be used while it cant be added to. At the very least, the old plugin worked & there were workarounds for the aspects that didnt work. I think that's the best route until we can get active work on the server again.
    sniper santa misslelauncher
  • Koala wrote:

    So, what do we do? Go back to the previous RP plugin?

    420alex wrote:

    Honestly if theres noone capable of bugfixing on the current plugin, I think it's the best route.
    I've started playing with the sourcecode but those are only very minor tweaks and it's mainly been research up to this point.

    This plugin is a masterpiece, but shouldnt be used while it cant be added to. At the very least, the old plugin worked & there were workarounds for the aspects that didnt work. I think that's the best route until we can get active work on the server again.


    I agree. I do like the new plugin but with all the bugs that are around and players constantly reporting them but nothing really happening in a decent time frame we might need to considered taking a step back before being able to step forward. Maybe take a Snapshot off all players banks/items, add them up then give the cash back to them on the older plugin.

  • This is honestly an odd bug.

    I've looked over the source code time and time again in the past, and there's no reason why it should be acting up like this.

    Sorry, but I've been a tad busy with school, and honestly after such a long time developing this shit it gets tiring. Syle has the source code and I guess so does Alex now. I've seen the plugin being updated in my dropbox as well.

    Anyways, the problem has something to do with the sync between memory values and MySQL, so I'm starting to think that the best route to go on would be to no longer use memory values for inventory items, and to instead always read from the SQL server. So instead of updating values in memory and reading from memory, just have all value changes and reads come to and from the database. And of course add in a flag to block use of /items until a response is heard from the SQL server on each query (this would also make it harder to item bind).
  • CheesyBread wrote:

    This is honestly an odd bug.

    I've looked over the source code time and time again in the past, and there's no reason why it should be acting up like this.

    Sorry, but I've been a tad busy with school, and honestly after such a long time developing this shit it gets tiring. Syle has the source code and I guess so does Alex now. I've seen the plugin being updated in my dropbox as well.

    Anyways, the problem has something to do with the sync between memory values and MySQL, so I'm starting to think that the best route to go on would be to no longer use memory values for inventory items, and to instead always read from the SQL server. So instead of updating values in memory and reading from memory, just have all value changes and reads come to and from the database. And of course add in a flag to block use of /items until a response is heard from the SQL server on each query (this would also make it harder to item bind).
    Yeah alex wants to get familiar with it and has been a help with fixing the printer exploit on his test server. Only I have been updating tho. This sounds out of my scope of skill i will refer to eas, sounds like the right action
  • So I had a thought.

    What if the logs table, having over 2 million rows, was somehow lagging the MySQL server.

    Well, the number of rows in a table shouldn't do that, especially since inventory stuff is on a separate db connection from the logging system (though still the same database).

    Anyways, I took all the logs and moved them to an _old table before clearing the current logs table to see if this might remedy some issues. If it does, then we know to add some code so the plugin can properly handle this on its own in the future.
  • You know, it makes sense but at the same time it doesn't make sense.

    Firstly, the way I have always seen SQL is you send the query out, and as long as the query makes it to the server (along with the information required for security verification purposes) the query will get executed.

    It almost seems as if the SQL server isn't executing a query if the plugin crashes in between sending the query and receiving the response from the MySQL server. Almost like the query is being ignored or undone if the plugin doesn't listen to the response from MySQL because of a crash. Maybe Hooogan could give us some insight into this? Have I looked incorrectly at how MySQL is handled in this manner? Or could this be due to bad database configuration? Anyways, perhaps this could explain the phenomenon that is occurring.

    It is also worth mentioning that all MySQL queries are sent and received through a second thread which is built into sourcemods database libraries. It's the thread that executes and receives queries/data in the order presented to it. This is the thread that is responsible for calling the SQL 'receiver' functions to receive the responses to the query. Unless a SELECT query is executed, a generic sql listener function is used which basically discerns between a successful query and unsuccessful query. It handles unsuccessful queries correctly already, but the problem seems to be happening when the server crashes, therefore there is nothing that the generic sql listener can do because it isn't being called in the first place.