Service Central — это портал, на котором пользователи проходят различные социологические опросы. Их итоги обрабатываются и отображаются в виде определенных результатов и рекомендаций. Например, по средней зарплате, предпочитаемым товарным брендам и т.д. Рекомендации формируются на основе выбора респондентов. Часть из них — та, что касается работодателей, демонстрируется на странице mixedpage.
В числе пользователей портала могут оказаться как профессионалы, так и студенты. Словом — кто угодно. Суть бага, указанного в заглавии, заключается в том, что для профессионалов, проживающих в Норвегии, результаты и рекомендации не отображались. При этом на территории других стран ничего подобного не происходило.
Как все исправить?
В настоящий момент наша система рекомендаций находится на стороннем сервисе, куда посылается запрос с определенными параметрами (market и т.д). Он отправляет в ответ перечень брендов (например), которые рекомендованы конкретному респонденту. Если этого не происходит, наша система обращается к YAML файлу, содержащему стандартное значение для опроса. Далее отправляется еще один запрос к тому же сервису. Теперь уже для стандартного значения.
Эта команда вытягивает все стандартные значения для конкретного маркета. При этом названия стран сокращаются согласно ISO 3166-1 alpha-2 — двухсимвольному стандарту, обозначающему их коды и коды подчиненных территорий. При работе с остальными ключами в файле мы не выявили никаких проблем.
Однако, запустив код парсинга YAML файла в консоли, вместо Норвегии был получен ключ FALSE. После этого мы сделали вывод, что некоторые ключевые слова YAML парсер обрабатывает, как нулевые значения:
Обращение к документации указало нам два пути решения проблемы:
- Явное указание строки:
- Преобразование, обеспечивающее передачу ключа в качестве строки: