A constraint-based approach to diagnosing configuration problems