Obstacles in Fully Automatic Program Repair: A survey