Crash - GetItemInfoByKeywords
Moderators: Community Managers, Developers
- John Adams
- Retired
- Posts: 4582
- Joined: Wed Aug 28, 2013 9:40 am
- Location: Phoenix, AZ.
- Contact:
Crash - GetItemInfoByKeywords
Zippy, no idea why this is suddenly so crashy, but it's just started happening after the last few commits. Pretty sure people have been using .item search for some time without incident.
Lokked and I talked, now that the Telon Exchange shows all the items (in a sexier manner), we agree that .item search is no longer needed and can be removed or restricted by Token. This is your call though, if you want to fix it, go ahead otherwise I'll give it a "G" and lock it out from use.
Code:
itr.second->name is unreadable
Console:
[quote]19:36:59.285 D Command Player 'Freddy Hill' used command '.item:list' (38)[/quote]
Lokked and I talked, now that the Telon Exchange shows all the items (in a sexier manner), we agree that .item search is no longer needed and can be removed or restricted by Token. This is your call though, if you want to fix it, go ahead otherwise I'll give it a "G" and lock it out from use.
Code: Select all
WorldServer.exe!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::size() Line 1733 C++
WorldServer.exe!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & _Right, unsigned int _Roff, unsigned int _Count) Line 1105 C++
WorldServer.exe!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & _Right) Line 736 C++
> WorldServer.exe!ItemInfoList::GetItemInfoByKeywords(const char * name) Line 152 C++
WorldServer.exe!CommandProcess::CommandItemList(std::shared_ptr<Client> & client, Separator * sep, unsigned char cmd_index, bool world_client) Line 2693 C++
WorldServer.exe!CommandProcess::Process(std::shared_ptr<Client> & client, Separator * sep, unsigned char command_index, bool world_client) Line 247 C++
WorldServer.exe!ChunkServer::HandleChatSay(std::shared_ptr<Client> & client, PacketStruct * packet_struct) Line 998 C++
WorldServer.exe!ChunkServer::ProcessPackets() Line 340 C++
WorldServer.exe!ChunkPacketThread(void * data) Line 134 C++
WorldServer.exe!ThreadRun(void * arg) Line 77 C++
WorldServer.exe!_callthreadstart() Line 255 C
WorldServer.exe!_threadstart(void * ptd) Line 239 C
kernel32.dll!75f1338a() Unknown
[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
ntdll.dll!77389f72() Unknown
ntdll.dll!77389f45() Unknown
Code: Select all
// Find the item for (auto &itr : item_list) { // Convert each to lower case for search purposes==> string item_name = itr.second->name; string search(name);Console:
[quote]19:36:59.285 D Command Player 'Freddy Hill' used command '.item:list' (38)[/quote]
Re: Crash - GetItemInfoByKeywords
There's something screwy there. I had no issues forever, and then crashed it myself a couple weeks ago in a search. Reloaded, tried a one word search, crashed. Looked at the code, couldn't find a problem, restarted. Tried again. No issues. Same search that crashed. No issues. All kinds of searches. No issues. Chalked it up to a fluke. I agree this is not worth the trouble. Make it G for now and I'll disable it entirely or at least do a pointer check on it for my next commit.
- John Adams
- Retired
- Posts: 4582
- Joined: Wed Aug 28, 2013 9:40 am
- Location: Phoenix, AZ.
- Contact:
Re: Crash - GetItemInfoByKeywords
If it's a simple fix, it is pretty cool. People seem to use it a lot because I am not sure they are aware there's a broker.
Btw, as an added value, if you keep this please handle "" empty strings like you do a missing param. I just did .item list "" hoping to see why it was crashing, and it flooded my chat with
[img]https://tarynbalwinski.files.wordpress. ... things.png[/img]
Thanks!
Btw, as an added value, if you keep this please handle "" empty strings like you do a missing param. I just did .item list "" hoping to see why it was crashing, and it flooded my chat with
Thanks!
- John Adams
- Retired
- Posts: 4582
- Joined: Wed Aug 28, 2013 9:40 am
- Location: Phoenix, AZ.
- Contact:
Re: Crash - GetItemInfoByKeywords
I added a printout of the "sep" (args) for the .item list command, and sure enough, nothing at all seems wrong with them. Since you (zippy) saw the crash yourself and it seems very rare/random, that kinda spooks me a little. What is going on that this list gets nuked for seemingly no reason? Here's a console of the latest command sequences:
[quote]17:41:05.005 D Chunk HandleClientBank: Ending
17:41:09.233 E Chunk Unhandled opcode 0x000003D9 (985) from 76.20.176.124
0000: 00 09 01 CC 02 00 D9 03 - 00 00 00 00 00 00 27 00 ..............'.
17:41:17.204 D Command Player 'Jcl Druid' used command '.listcommands' (24)
17:41:17.204 W Command Separator (size=1):
17:41:17.204 W Command 01: '.listcommands'
17:41:22.976 D Command Player 'Jcl Druid' used command '.ability' (36)
17:41:22.976 W Command Separator (size=1):
17:41:22.976 W Command 01: '.ability'
17:42:36.516 D Command Player 'Jcl Druid' used command '.item' (37)
17:42:36.516 W Command Separator (size=1):
17:42:36.516 W Command 01: '.item'
17:42:44.534 D Command Player 'Jcl Druid' used command '.item:add' (39)
17:42:44.534 W Command Separator (size=4):
17:42:44.534 W Command 01: '.item'
17:42:44.534 W Command 02: 'add'
17:42:44.534 W Command 03: 'jcl'
17:42:44.534 W Command 04: '1'
17:42:51.835 D Command Player 'Jcl Druid' used command '.item:add' (39)
17:42:51.835 W Command Separator (size=4):
17:42:51.835 W Command 01: '.item'
17:42:51.835 W Command 02: 'add'
17:42:51.835 W Command 03: 'jcl'
17:42:51.835 W Command 04: '100'
17:42:55.049 D Command Player 'Jcl Druid' used command '.item:list' (38)
17:42:55.049 W Command Separator (size=2):
17:42:55.049 W Command 01: '.item'
17:42:55.049 W Command 02: 'list'
17:42:55.049 E Command CommandItem: No valid id argument after .item list
17:42:59.121 D Command Player 'Jcl Druid' used command '.item:list' (38)
17:42:59.121 W Command Separator (size=3):
17:42:59.121 W Command 01: '.item'
17:42:59.121 W Command 02: 'list'
17:42:59.121 W Command 03: 'fish'[/quote]
then, boom.
Edit: Well here's some good news. I just did the exact 4 .item commands Jcl did, and crashed the world instantly Go git 'em, Zippy!
[quote]17:41:05.005 D Chunk HandleClientBank: Ending
17:41:09.233 E Chunk Unhandled opcode 0x000003D9 (985) from 76.20.176.124
0000: 00 09 01 CC 02 00 D9 03 - 00 00 00 00 00 00 27 00 ..............'.
17:41:17.204 D Command Player 'Jcl Druid' used command '.listcommands' (24)
17:41:17.204 W Command Separator (size=1):
17:41:17.204 W Command 01: '.listcommands'
17:41:22.976 D Command Player 'Jcl Druid' used command '.ability' (36)
17:41:22.976 W Command Separator (size=1):
17:41:22.976 W Command 01: '.ability'
17:42:36.516 D Command Player 'Jcl Druid' used command '.item' (37)
17:42:36.516 W Command Separator (size=1):
17:42:36.516 W Command 01: '.item'
17:42:44.534 D Command Player 'Jcl Druid' used command '.item:add' (39)
17:42:44.534 W Command Separator (size=4):
17:42:44.534 W Command 01: '.item'
17:42:44.534 W Command 02: 'add'
17:42:44.534 W Command 03: 'jcl'
17:42:44.534 W Command 04: '1'
17:42:51.835 D Command Player 'Jcl Druid' used command '.item:add' (39)
17:42:51.835 W Command Separator (size=4):
17:42:51.835 W Command 01: '.item'
17:42:51.835 W Command 02: 'add'
17:42:51.835 W Command 03: 'jcl'
17:42:51.835 W Command 04: '100'
17:42:55.049 D Command Player 'Jcl Druid' used command '.item:list' (38)
17:42:55.049 W Command Separator (size=2):
17:42:55.049 W Command 01: '.item'
17:42:55.049 W Command 02: 'list'
17:42:55.049 E Command CommandItem: No valid id argument after .item list
17:42:59.121 D Command Player 'Jcl Druid' used command '.item:list' (38)
17:42:59.121 W Command Separator (size=3):
17:42:59.121 W Command 01: '.item'
17:42:59.121 W Command 02: 'list'
17:42:59.121 W Command 03: 'fish'[/quote]
then, boom.
Edit: Well here's some good news. I just did the exact 4 .item commands Jcl did, and crashed the world instantly Go git 'em, Zippy!
Re: Crash - GetItemInfoByKeywords
Hey I crashed the server, yay! I logged in and was looking around and playing with some commands. I thought something happened... and then my client crashed.
Re: Crash - GetItemInfoByKeywords
Is this crash after my update today?
I will try to replicate tomorrow.
By the way, the item search for "" is constrained by the same 200 item limit at the broker.
I will try to replicate tomorrow.
By the way, the item search for "" is constrained by the same 200 item limit at the broker.
- John Adams
- Retired
- Posts: 4582
- Joined: Wed Aug 28, 2013 9:40 am
- Location: Phoenix, AZ.
- Contact:
Re: Crash - GetItemInfoByKeywords
No I have not done any updates lately. But I will do that tonight. I need someone to review Blackstorm's Groups code before I put anything new on NT, haven't seen that happen "automatically" yet.
[quote="zippyzee"]By the way, the item search for "" is constrained by the same 200 item limit at the broker.[/quote]
Right, I actually thought my image was funny. But of course it's only returning 200. I'd like an empty search string (obviously intentional) to simply not perform the search. Which is probably moot, since the command is for GMs only eventually. Just makes no sense to me to return anything if I do not provide criteria.
[quote="zippyzee"]By the way, the item search for "" is constrained by the same 200 item limit at the broker.[/quote]
Right, I actually thought my image was funny. But of course it's only returning 200. I'd like an empty search string (obviously intentional) to simply not perform the search. Which is probably moot, since the command is for GMs only eventually. Just makes no sense to me to return anything if I do not provide criteria.
Re: Crash - GetItemInfoByKeywords
Actually I do searches on the broker with no string all the time to just get some sample items. I know that's a different scenario, but there are reasons to search for "anything" with "". Doesn't need to be part of .item list, though.
- John Adams
- Retired
- Posts: 4582
- Joined: Wed Aug 28, 2013 9:40 am
- Location: Phoenix, AZ.
- Contact:
Re: Crash - GetItemInfoByKeywords
Agreed. It's fine then, because as we've agreed, .item list will eventually be GM-only anyway. Let's not waste your time on my nit-picking Thanks for clarifying.