Google Cloud Run Ошибка системного вызова gVisor на узле приложения
Мой проект успешно выполнялся в облачной среде, и я недавно добавил пакет https://www.npmjs.com/package/express-static-gzip для обслуживания своих предварительно распакованных ресурсов, и я заметил, что после развертывания в облаке запустите предварительно распакованные активы не распознаются браузером (он отлично работает на локальном хосте)
Также я заметил ошибку в журналах стекадрайверов.
Ограничение песочницы контейнера: Неподдерживаемая статистика системных вызовов (0xffffff9c,0x3e2292ff7208,0x0,0xfff,0x3e2292ff6df0,0x3e2292ff6f10). Пожалуйста, обратитесь к https://gvisor.dev/c/linux/amd64/statx для получения дополнительной информации.
Также заметил, что ресурсы, обслуживаемые из облачного прогона Google, не имеют заголовка accept-encoding (просматривая исходный код пакета express-static-gzip, он использует вызовы чтения файла nodejs, я предполагаю, что вызовы чтения файла могут вызвать ошибку в gVisor)
Обновить:
Получение этой ошибки "Ограничение песочницы контейнера: неподдерживаемый системный вызов" даже после удаления пакета express-static-gzip.
Кто-нибудь знает об этой ошибке?
2 ответа
AFAIK системный вызов statx реализован в gVisor (с 19 июня). Возможно, Cloud Run еще не использует последнюю версию.
Это стоит отметить при запуске в Google Cloud Run, когда вы видите неподдерживаемую ошибку системного вызова в журналах:
В большинстве случаев неудачные системные вызовы не означают сбой вашего приложения. Node.js здесь пытается использовать statx, если он доступен, и использует системный вызов stat, который поддерживается.
Большинство языков явно печатают трассировку стека при сбое или выдают исключение при сбое системного вызова. Я не вижу, что здесь происходит.