Reuters don't wants to tell you the reason behind the shooting and BBC uses the word "altercation". This is the truth of what really happened:

According to eyewitnesses, an Iraqi soldier called "Barzan Mohammed Abdullah" from the northern city of Telkeef" used a machine gun fixed on a military "pick-up" patrol vehicle, shot American soldiers killing four [not two as the news agencies claim] and injured three in Zndjeli district - Mosul. The shooting came after the U.S. soldiers beat Abdullah inhumanly in public in front of the people.

AMSI says; the soldier took revenge after the Americans humiliated him in public.