СМИ сообщили, что в середине августа многие пользователи 3D-принтеров Bambu Lab столкнулись со страной проблемой: устройства начали работать сами по себе, что в итоге привело к поломкам, печати новых проектов поверх старых и так далее. Как объяснил производитель, сбой произошел из-за проблем в работе облака компании.
На Reddit пользователи сообщают, что у многих печать стартовала ночью, пока они спали. Зачастую это приводило к печати одних деталей поверх других, в других случаях филамент скапливался внутри камеры, и его подача прекращалась только после окончательной поломки устройства. Так, один пользователь сообщает о вырванном датчике температуры.
«Я рад, что был дома и смог выключить [принтер]. Похоже, он сгорел выполняя вчерашнее задание на печать и одновременно повредил хотэнд, — пишет пользователь SyntheticStart на Reddit. — Это моя первая проблема с аппаратом, но теперь я боюсь запускать более долгую печать, поскольку у меня нет возможности следить за ним».
В ответ на жалобы владельцев принтеров представители Bambu Lab сначала сообщили о «сбое облачной печати», а затем более детально рассказали о проблеме в блоге:
«Корень проблемы был связан с MQTT SDK, используемым в облачном соединении. Один из двух клиентов MQTT SDK был отключен из-за таймаута. Обычно служба автоматически восстанавливает соединение, но в данном случае она вернула отчет об успешном соединении, хотя на самом деле соединение не было восстановлено. За это время накопилось некоторое количество сообщений о запуске печати.
Затем был обнаружен второй сбой соединения, и на этот раз службе удалось успешно восстановить соединение, но в результате система отправила накопленные сообщения о запуске печати на ряд принтеров, которые получили информацию и начали печать, если принтер простаивал».
Также сообщалось, что проблему усугубляло «большое количество запросов доступа к API», выполняемых одновременно, что не позволило разработчикам «обеспечить своевременный ответ». Дело в том, что программное обеспечение Bambu Studio для принтеров «повторно инициирует запрос на печать сразу после доступа к облаку».
Как объяснили разработчики: «проще говоря, задание на печать, отправленное на принтер ранее, оказалось заблокировано в облаке и запустилось позже».
Как теперь пишут журналисты, произошедшее напоминает и о проблемах безопасности таких устройств. Так, в прошлом разработчики Bambu Studio уже признавались, что им пришлось изучать сетевую безопасность практически с нуля, поскольку «безопасности всей системы Bambu Lab с самого начала была не лучшей». Дело в том, что команда имела опыт работы в робототехнике, но очень мало опыта в области сетевой безопасности.
«Стоит задуматься, нужно ли продукту полагаться на облако, если он не нуждается в нем для выполнения своих основных функций. Этот случай показал, что 3D-принтеры могут управляться извне, без ведома владельцев. Кстати, мы уже упоминали, что эти принтеры оснащены встроенными камерами?», — пишет издание ArsTechnica.
Представители Bambu Studio извинились перед владельцами 3D-принтеров и заявили, что берут на себя «полную ответственность за случившееся». Некоторые пользователи пишут, что компания уже пообещала помочь им с ремонтом, а также бесплатно выслать им нужные запчасти и филамент.
Что касается технических аспектов произошедшего, разработчики говорят, что обновили логику работы SDK своего облачного сервиса. Например, планируется, что теперь при каждом запуске принтер будет проверять временную отметку «и автоматически отбрасывать устаревшие отпечатки, которые не соответствуют строгой конфигурации».
Также принтеры получат обновления прошивки, которые должно предотвращать печать нового проекта, если поверхность для печати не очищена, и пользователям будут демонстрироваться всплывающие уведомления, которые они должны будут отклонить для продолжения работы.
Кроме того, принтеры получат обновление, позволяющее «постоянно контролировать температуру хотэнда и нагревательного стола». В случае обнаружения неисправности на экране принтеров Bambu Studio и Bambu Handy будет выведено сообщение об ошибке, а нагреватели будут отключены, чтобы снизить возможный риск.