More than 4,000 people are stranded on a Carnival cruise ship 150 miles off the coast of Mexico after a fire broke out in the engine room.