Custom sound selected improperly repeats on spell expiry #32


  • Waiting
  • Defect
Open
  • _ForgeUser23487 created this issue Aug 11, 2011
    Tester

    What steps will reproduce the problem?

    1. Under Audible Warnings, select None. On a just single spell (the dreaded Lifebloom), select a custom sound for it (BeepBeepBeep). Have its alert slider set to 3 seconds.

    2. In combat, cast both that spell as well as others to which no custom sound is attached.

    What is the expected output? What do you see instead?

    Expected: the custom sound for the single spell to play once at the 3 second mark and again at its expiry.

    Instead: very frequently (seems to be rather randomly), the sound improperly plays twice in a row at expiry after hearing it once properly at the 3 second mark. The repeatable conditions seen so far: it only happens in combat and it only happens when there are other spells (without sounds selected) expiring either before or after Lifebloom.

    What version of the product are you using?

    r264

    Do you have an error log of what happened?

    No errors.

    Please provide any additional information below.

    Took this long to confirm that the above problem happens consistently. Its been happening regularly since about r258.

    No, its not only when you are able to cast Lifebloom on more than one target (when in Tree of Life form). Yes, at that time, it plays the expiry sound for all targets Lifebloom falls off of. In normal usage on one target, however, the expiry sound frequently plays improperly twice.

    No, its not "lag" or similar. The problem happens after the sound properly plays at the 3 second mark. There is never a repeat of the sound then; it only repeats under the above listed conditions at spell expiry. I've never heard it sound more than twice on a single Lifebloom expiry, but that's one more than should be playing. Its really distracting.

  • _ForgeUser23487 added the tags New Defect Aug 11, 2011
  • _ForgeUser23487 edited description Aug 11, 2011
  • _ForgeUser23487 assigned issue to Forge_User_91153858 Aug 11, 2011
  • Forge_User_91153858 posted a comment Aug 11, 2011

    hmm quite a tricky one, i think i know what area of code this is happening at, so i'll try to do some investigation. Thanks!

  • _ForgeUser23487 posted a comment Aug 13, 2011

    (buys donuts for the police investigator)

    Any luck yet? This problem is bad enough in raids to cause me to revert to an earlier working version (been so many that at this point I forget what actually works).

  • Forge_User_91153858 posted a comment Aug 14, 2011

    Hi Zidomo, i've issued a potential fix, although I don't think it will. I'll see if i can get any clues using Debug Mode later. It's possible that the spell is expiring, then being re-added again at the last second... possible cause is multiple detection methods.

    It could also be the Bucket Event on UNIT_AURA - i'm not sure what the performance implication of changing this to single events will be yet, but i'll do some testing :)

  • Forge_User_91153858 posted a comment Aug 14, 2011

    fixed in 267 :)

  • _ForgeUser23487 posted a comment Aug 14, 2011

    Woohoo, nice work.

    Yes, will be interesting to see if there are any performance implications to the fix using math.floor/ceiling, etc. when I have time to do CPU testing. Because as we all know, math sucks! ;). Unless you know offhand about any in r267.

    Speaking of CPU, moving bars - - whether implemented through a library (LibBars, LibCandyBar or whatever) or custom rolled - - consume a large chunk of CPU time, regardless of anything else a mod is doing. So a future feature option to suggest is adding icons with cooldown numbers on them that can be chosen by the user instead of bars.

    Have found over time that icon-based cooldown timers tend to use less CPU than bar-based ones (with bars showing). Will file a ticket with feature suggestions after the next release.

  • _ForgeUser23487 posted a comment Aug 14, 2011

    Well after testing, partially nice work.

    r267 (r268-r270 are just me making the embeds for nolib versions "perfect") regularly throws errors. Doesn't appear to affect the proper single sound playing on spell expiry, but errors nonetheless.

    Some time during an instance run casting a tracked spell:

    ["message"] = "SpellReminder-3.0\\modules\\cooldowns.lua:111: attempt to index local 'ci' (a nil value)\nCallbackHandler-1.0-6:147: in function <...onLoader\\CallbackHandler-1.0\\CallbackHandler-1.0.lua:147>\n<string>:\"safecall Dispatcher[1]\":4: in function <[string \"safecall Dispatcher[1]\"]:4>\n<in C code>: ?\n<string>:\"safecall Dispatcher[1]\":13: in function `?'\nCallbackHandler-1.0-6:92: in function `Fire'\nAceEvent-3.0-3 (Ace3):120: in function <Interface\\AddOns\\Ace3\\AceEvent-3.0\\AceEvent-3.0.lua:119>\n",
    			["type"] = "error",
    			["time"] = "2011/08/14 19:55:17",
    			["session"] = 3725,
    			["counter"] = 25,
    		}, -- [999]
    

    Nine minutes later in the same run, similar but not totally identical error thrown:

    ["message"] = {
    				"SpellReminder-3.0\\modules\\cooldowns.lua:111: attempt to index local 'ci' (a nil value)\nCallbackHandler-1.0-6:147: in function <...onLoader\\CallbackHandler-1.0\\CallbackHandler-1.0.lua:147>\n<string>:\"safecall Dispatcher[1]\":4: in function <[string \"safecall Dispatcher[1]\"]:4>\n<in C code>: ?\n<string>:\"safecall Dispatcher[1]\":13: in function `?'\nCallbackHandler-1.0-6:92: in function `Fire'\nAceEvent-3.0-3 (Ace3):120: in function <Interface\\AddOns\\Ace3\\AceEvent-3.0\\AceEvent-3.0.lua:119>\n<in C code>: ?\n<in C code>: ?\n<in C code>: in function `CastSpellByName'\nInterface\\FrameXML\\ChatFrame.lua:1041: in function `?':\nInterface\\FrameXML\\ChatFrame.lua:4209: in function `ChatEdit_ParseText':\nInterface\\FrameXML\\ChatFrame.lua:3838: in function `ChatEdit_SendText':\nInterface\\FrameXML\\ChatFrame.lua:2571: in function <Interface\\FrameXML\\ChatFrame.lua:2564>:\n<in C code>: in function `RunMacroText'\nInterface\\FrameXML\\SecureTemplates.lua:379: in function `handler':\nInterface\\FrameXML\\Se", -- [1]
    				"cureTemplates.lua:543: in function `SecureActionButton_OnClick':\nInterface\\FrameXML\\SecureTemplates.lua:583: in function <Interface\\FrameXML\\SecureTemplates.lua:575>:\n", -- [2]
    			},
    			["type"] = "error",
    			["time"] = "2011/08/14 20:04:57",
    			["session"] = 3725,
    			["counter"] = 5,
    		}, -- [1000]
    

    As you can see by the counters, both errors repeated frequently.

  • Forge_User_91153858 posted a comment Aug 15, 2011

    fixed in r271

    RE: Performance. The floor/ceil i used actually didnt fix the problem, so i can probably take those out anyway. There are probably a lot more performance optimisations that could be done, and maybe some memory leaks too. Will have to check these things out before the release :)

  • _ForgeUser23487 posted a comment Aug 25, 2011

    The problem has improved in r271-r272, but not totally.

    On occasion, a selected expiry sound still plays twice at spell expiry with those revisions. But not nearly as often as it did prior to r267.


    Edited Aug 25, 2011
  • _ForgeUser23487 posted a comment Sep 9, 2011

    r273, same deal as with r271-272. Sometimes still get a selected expiry sound improperly playing twice at spell expiry.

  • _ForgeUser23487 removed a tag New Sep 9, 2011
  • _ForgeUser23487 added a tag Waiting Sep 9, 2011

To post a comment, please login or register a new account.