smaitch / Grail

World of Warcraft addon to provide a database of quest information.
31 stars 20 forks source link

Error on load / reaload grabbed by bugsack #104

Closed Wyrade closed 4 years ago

Wyrade commented 4 years ago

Hi!

I disabled all my addons except BugGrabber, BugSack, Grail, Grail NPCs Retail and Grail Quests Retail, but I still get the below error in bugsack on every reload. What could cause this? Any tips how to fix it or how I can/should provide more information to find the issue? Thanks in advance!

490x Grail\Grail-106.lua:4388: strsplit(): Stack overflow
[C]: ?
Grail\Grail-106.lua:4388: in function `_CleanLearnedDatabase'
Grail\Grail-106.lua:4486: in function `?'
Grail\Grail-106.lua:1549: in function `?'
Grail\Grail-106.lua:10193: in function `_Tooltip_OnEvent'
Grail\Grail-106.lua:10779: in function 

Locals:
(*temporary) = "A:116576"
(*temporary) = "A:107126"
(*temporary) = "A:700801"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) = "K000262144"
(*temporary) 
Wyrade commented 4 years ago

It also writes on logon a lot of lines in chat saying "Malformed code in saved variables for quest [blabla, lot of numbers here]". I tried deleting the WTF\Account[numbers]\SavedVariables\Grail.lua and its bak, but it didn't help.

smaitch commented 4 years ago

Your Grail.lua file contains "learned" information that is trying to be processed, but is too large for the Lua interpreter to handle. Removing the Grail.lua file should have worked. I am working on a fix to avoid the situation that I plan on getting out for the next release.

yoshimo commented 4 years ago

It might make sense to upload the file so others can profit from the learned data and it can be purged with the next grail update

Wyrade commented 4 years ago

https://drive.google.com/file/d/1kYylQrVQxgRZ-I9R69jYvFuVNPCeo5il/view?usp=sharing Here is the Grail.lua from the mentioned location, tell me if I should share any other files.

smaitch commented 4 years ago

Thanks. I have processed the file to augment the Grail database. I have also changed Grail to no longer have the Lua error with strsplit, and Grail will also not report that "Malformed code" message with your data. These changes have been made for the next release.