Client Crash - adding to stacks in inventory
The client crashes and eventuallly boots to character selection after, what seems to be, a loss of communication when purchasing items which add to an existing stack in inventory. This does not kick other clients from what I can tell as I had two separate accounts logged on separate machines.
When entering the game after this occurs, the items are a part of the stack and no cash was subtracted from the character's holdings. Another stack-transfer related quirk occurs when one character trades with another with the recipient having a partial stack of what is being traded, for example, food. The item does not add to the existing stack. It simply becomes a part of the character's inventory in it's own private slot. While the latter issue isn't a big deal, I believe the two are related. * I changed the database value of many of the stack sizes in `items.stacksize`. Any ideas? |
A zone crash would kick all clients.
Smart Trades: www.eqemulator.org/forums/showthread.php?t=38675 I'll take a look through the code to see what conditions might cause this..but, I haven't heard of any issues since the last post in that thread. Post some examples of your stacksize changes (before -> after) Did you re-run shared_memory.exe after making these changes? |
Quote:
I used the queries below to alter many/most of the items which had large stacksizes. After, I used the searches to alter individual items by changing items.stackable = 0 for items which were not stackable at an earlier time. Quote:
These were some of the first queries I wrote for changes made to the main DB I use to create my `expansions`. Forgive me if they are not the most efficient. I don't keep the server up very often. It's up when I play/test or if I forget to turn it off. Shared_memory.exe is restarted often because of this. I restart the server using this batch for EQEmu login: Quote:
|
Posting the crash dump of the zone server that crashed would be immensely helpful. It should be in the '\logs\crash' folder.
This is a good place to look for issues: https://github.com/EQEmu/Server/blob...ket.cpp#L12006 If you have any of the logging systems enabled, try locating an entry for the transaction that caused the crash. Since you're dealing with currency, you might look for a division-by-zero error. Post your log and go over what you can find and we'll see where that takes us. |
Rather than add to an already longish post, I'll start a new.
I tested some specifics and had these results: Scenario 1 - Merchant transfer to PC, non-stackable Shows up in DB tables inventory, merchantlist_temp, qs_merchant tables Works as it should Scenario 2 - Merchant transfer stackable Crashes zone immediately Client UI gives appearance of successful barter Shows up in DB table inventory and merchantlist_temp but not qs_merchant tables Upon logging back the item stack is what was intended but no cash was removed This result is the same regardless of using merchantlist_temp or merchantlist although I noticed some strange things with what the temp table shows vs what the NPC in game shows. For example: this merchant has two separate entries in his temp table for item 13073, bone chips. I purchased the stack which appears not to change and, not only did the character not receive the items, cash was removed and the merchantlist_temp table showed item as still being there. The client showed no instance of the item in the merchant UI and the other stack disappeared, as well. Upon logging back both stacks of the same item were present when checking the merchant. I will clear the temp table and try it again. * Same happened with an empty merchantlist_temp table. |
Here's a long one:
Quote:
|
Quote:
I apologize for not knowing. You could say I jumped into a pool of sharks before knowing there were sharks. |
I 'think' a division by zero error would be declared at the top of the crash log..never seen one in a log myself.
You're showing an "EXCEPTION_ACCESS_VIOLATION," which should be traceable. [deleted - not even close...] (How old is your code? Handle_OP_ShopPlayerBuy is nowhere close to line 5699) Give me a few minutes and I'll look over that part of the code and try to get some pointers back to you. EDIT: For the client to be updated, you would need to at least reach this far: https://github.com/EQEmu/Server/blob...ket.cpp#L12184 Do you have 'RuleB(QueryServ, PlayerLogMerchantTransactions)' enabled? Quote:
Did you enable it by chance? I see a point where a non-safe access can occur..but, shouldn't normally be accessed. |
I'll check it out when I get back to the station.
Thank you sir for your time. Reserved |
If you using older/custom code and don't want to update, check out this section I made changes to:
https://github.com/EQEmu/Server/blob...ket.cpp#L12235 Hopefully, your issue is bound to that snippet and the change will fix it, or at least stop the server from crashing. If this does fix the crash and you are still having 'transaction' issues, post back any new results..otherwise, let me know if this does fix it. |
You hit the nail on the head.
I have been apprehensive to update the code due to all the changes I have done with my goal in mind. I understand my goal is not the goal of many/most who share the changes. I'm extremely grateful, regardless. May of 2014 since I updated anything publicly. Nevertheless, I backed up everything and used SVN Update to update the Quests, Source and Source\utils\sql\git folders today. I skimmed the changelog a few times to try and catch the optional and required changes which may cause issues with my altered database. I have some reservations but, that is not for this thread. A lot has happened in a year! *I haven't made any code changes. I don't have enough knowledge to attempt. I have changed the database quite a bit which includes removing "unnecessary" tables for a classic-like setting. Basically, I removed any table which appeared to not have a direct affect on a table I would keep for my purpose. I understand this is a bit naive and may explain some of the issues I am having. I get error logs for missing tables. It doesn't appear to affect gameplay. QS and stacking: Ah, I failed to deduce that, thanks. Age of code: no updates until today, since May 2014 Quote:
|
Sound advice is to pull code from the stable branch if you're concerned about stability and issues, it's exactly why we created it:
https://github.com/EQEmu/Server/tree/stable PEQ and EZ clear the master branch and usually KLS and I will discuss if master should be pushed over to the stable branch after PEQ or EZ have been running on it for a week. Lately it has been KLS and PEQ making these judgment calls as I've not been aggressive with code updates or any projects for that matter this summer |
Thanks for that.
|
I performed all the required sql updates and upon logging, no npcs spawned. It took a while to figure out and the issue was from the `12_24_14_npc_types_update.sql` update. An original programming typo, I'm guessing.
This was quite a while ago so I imagine this has been resolved although, if that were the case, I wouldn't have had the issue in the first place, right? I saw the changes made but, for some reason I didn't get them. Am I supposed to do anything after SVN Update? I updated the source, maps, quests and database through the queries. Maybe you are thinking to yourself, "What a noob..." Well let me tell you something, I'm living it right now and it fucking sucks. I can't stand not getting shit done and my patience is waning. /rant off Anyways, I'm still having the same issue with purchasing more of an existing partial stack. The same crash report was produced. I noticed Uleat did some codework and I really appreciate it. |
Did the crash occur at the same line as the old log? (You updated, didn't you? That's probably not true any longer.)
If you did update, post the new crash log so I can see where the crash aligns with the newer code..if you would, please :) |
Here you are sir:
And for the future, which format should I use to post things like this? I used quote because it seems to keep it all within the viewing area, although a bit more difficult to read. Quote:
|
This log posting is showing the same line reference as the old one.
You did update your local git repo, recompile the new server code and copy the new binaries to your server folder? (Quotes are fine) |
Negative.
A brief tutorial would be appreciated, for the future. Did I say I was a noob? I put together new source, though. I did not toss out the database. Having a few issues at the moment. Hopefully everything will be fixed soon. Just in case, a new issue: the maximum hit points show one number but the real hit points show a lower number. The real number is what the hp total would be with 1 or 0 stamina, unsure what the absolute minimum stat is. I tested this with a stamina buff and on different characters. This is the message I am getting: Quote:
Bravo to you guys! * I changed the column to slot and, as expected, I got basically the same error message: Quote:
On the plus side, I am not having any issues with purchasing items into an existing stack. Thank you very much for your help with this. * Mana and endurance are also affected by this issue. Attack and AC do not appear to be affected. I can med mana and endurance back but, I cannot heal the missing hit points. Symbol and similar hp buffs raise the max but, I have the same deficit at any maximum value not including stamina buffs. After zoning, any mana or endurance regained by medding is lost. Btw, I used the link Akka provided to attain the source. Thanks |
I was able to stop the error log from appearing. I searched for a missing sql but couldn't find one so, I searched the source folder for any clues. Client.cpp gave enough information for me to at least test the table schema it was describing.
I don't understand why I didn't receive an sql for the altered table. I searched https://github.com/EQEmu/Server/tree/stable and it has everything I have. https://github.com/EQEmu/Server/tree...l/git/required has newer stuff, including something that specifically alters the table in question, although it appears incorrect. The little error message means nothing for my classic server, although. I fixed it to see if it, somehow, someway, affected the much larger issue of my derived statistics being FUBAR. That's foo-bar for all you geeks. ~ * Another plus: it seems the weapon skills/defense/offense issue I described in another recent thread has been fixed. I am unsure how but, it's fair to assume it was from "redoing" the source. Two to one ain't bad... |
I was able to get everything sorted out. It took quite a bit of time and I was going in circles at times but, quite a few additional things now function and I learned something in the process.
I want to thank you all for contributing in one way or another. The more I get into it the more I realize what an amazing thing this is to accomplish. I'll have more questions tomorrow. ~ |
All times are GMT -4. The time now is 02:36 PM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.