You can clone with
HTTPS or Subversion.
DB: TDB_full_335.52 + updates
EDIT: This does not seem to be limited to Growl. See my update below
When a pet kills a target and switches to a new target, Growl will stop working unitl you exit combat or toggle off other pet abilities.
Note: The linked site says it costs mana but it is actually focus...
Sometimes turning off other pet abilities gets Growl working again. Not sure if there's an issue with cooldown collision or what. It also seems a bit random in that sometimes it happens frequently and other times it only happens occasionally (I guess that defines random ;) )
This is not limited to Growl as I had first thought. I've been playing around with a Wolf and it appears that abilities such as Bite silently trigger the cooldown for Furious Howl (no visual CD).
During combat, I noticed that the cooldown on Furious Howl had finished but it would not cast even though my pet had enough focus. I turned off all abilities and kept clicking FH while receiving "Ability is not ready" errors. Once a full 40 seconds went by it cast and started a visible cooldown.
Since Bite has no cooldown, it seems to keep other abilities in a constant state of cooldown. This same issue can be seen with other pet abilities. The lower or no cooldown abilities seem to trick the AI into thinking everything is in cooldown.
This is a relatively recent bug, up until a few months ago it did not exist.
So after mucking around in the debugger it appears the spells are getting stuck at SPELL_FAILED_NOT_READY after HasSpellCooldown() is checked.
Having trouble figuring out why... my guess is that the cooldown is not being cleared properly when the timer ends.
AddCreatureSpellCooldown() is called in both the PetAI and PetHandler::HandlePetActionHelper(). The one in PetAI seems to be set wether the spell cast or not so it applies the cooldown in the background.
This begs the question, why isn't the cooldown set in Spell::Cast() instead of the calling function? In fact, SendSpellCooldown(), which is called from Spell::Cast(), does this for the Player but not for the pet. Seems reasonable that the pet's cooldowns should be handled there.
Will be testing this shortly.
Fix pet spell cooldown being extended without successful cast
Nice work troubleshooting this issue, @MrSmite !