Active fault isolation: A duality-based approach via convex programming