Page 1 of 1

Crash - GetItemInfoByKeywords

Posted: Tue Feb 03, 2015 7:41 pm
by John Adams
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: 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:

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);
itr.second->name is unreadable

Console:
[quote]19:36:59.285 D Command Player 'Freddy Hill' used command '.item:list' (38)[/quote]

Re: Crash - GetItemInfoByKeywords

Posted: Tue Feb 03, 2015 8:08 pm
by zippyzee
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.

Re: Crash - GetItemInfoByKeywords

Posted: Tue Feb 03, 2015 8:46 pm
by John Adams
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!

Re: Crash - GetItemInfoByKeywords

Posted: Wed Feb 04, 2015 6:19 pm
by John Adams
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!

Re: Crash - GetItemInfoByKeywords

Posted: Wed Feb 04, 2015 7:47 pm
by JCL
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

Posted: Wed Feb 04, 2015 8:32 pm
by zippyzee
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.

Re: Crash - GetItemInfoByKeywords

Posted: Thu Feb 05, 2015 5:47 am
by John Adams
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.

Re: Crash - GetItemInfoByKeywords

Posted: Thu Feb 05, 2015 6:02 am
by zippyzee
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.

Re: Crash - GetItemInfoByKeywords

Posted: Thu Feb 05, 2015 3:35 pm
by John Adams
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.