Shoppers ran for cover and barricaded themselves into stores after a man reportedly shouted racist abuse at staff and swung a knife at random victims after a row broke near a Starbucks.