Hello people of Pet Talk,

We have been having incidents with our two-year-old dog where she becomes randomly and (seemingly) inexplicably aggressive. We have had her for around a year and a half, and she is usually the sweetest dog ever. She is a mutt and we adopted her form our local Humane Society. They said she was part Labrador and Australian Shepherd, but she looks like she may have some Pit Bull and maybe something else as well. In any case, this dog is beyond-tolerant. You can put your hand in her mouth while she's eating and she won't bite. You can roll her around on her back and she'll lick your face. You can hold her mouth closed and she won't resist. You can pull her ears, tail, legs, and she's fine. She is also very loving and wants to meet EVERYONE. she loves people, she loves dogs, she DOES go crazy over cats and squirrels, but she is a dog after all.

Four times, though, she has attacked another dog, seemingly out of the blue. Once in the forest when we went hiking. Twice at the dog park. Once at the Saturday farmers market.

It is so bizarre. She is happy, wagging her tail, sniffing butts, running around playing, and suddenly she and the other dog are on top of each other, bare toothed, growling, yelping and tearing at each other's necks.

I don't want to keep her form having fun with other dogs, but I don't know what to do to keep her form attacking.

What could be causing this erratic behaviour? Or is it normal for dogs to get into squabbles sometimes?
Is there a way to train her not to attack other dogs?
How do I punish her (well, deal with her) when she does get into a fight?