gRPC не работает на Raspberry Pi (armv7l) - PullRequest
0 голосов
/ 30 октября 2019

tl: / dr: gRPC останавливает облачный API на Raspberry Pi.

Я верю в это, потому что Google Firebase работает (не использует gRPC), но GoogleFirestore и Google TextToSpeech останавливаются (оба используют gRPC) и выдают много предупреждений, связанных с NativeLibraryLoader - io_grpc_netty_shaded_netty_tcnative_linux_arm_32

Оба API-интерфейса (Firestore и TextToSpeech), когда я пытаюсь что-то аутентифицировать (в реальном времени, я пытаюсь что-то сделать, в Firestore) будут пытаться выполнить аутентификациюили скачать WAV в TTS) он просто ... останавливается. Нет ошибокТочно такой же код отлично работает на ноутбуке, тот же JRE (OpenJDK 11).

Я вижу эту проблему на

  • Raspberry Pi 3 Model B
  • Debian Buster (10.1)
  • Linux ev3dev 4.19.23-ev3dev-3-beta1-rpi2 # 1 SMP Sun 3 марта 21:13:28 CST 2019 armv7l GNU / Linux
  • версия openjdk "11.0.5 "2019-10-15
  • Kotlin 1.3

Мое тестирование

  1. Firebase с использованием API администратора Java:подключается, читает, слушает обновления в реальном времени.
  2. Firestore с использованием API администратора Java: подключается (!), но бесконечно зависает при чтении коллекции.
  3. TextToSpeech с использованием API администратора Java: подключается (!), Но зависает на неопределенное время при чтении файла WAV.

Файл журнала с предупреждениями

Обходной путьпопытка:

  • Обновление с Java 8 до OpenJDK 11
  • вручную, включая io.netty: netty-tcnative-boringssl-static

Причины, по которымэто высокий уровень серьезности:

  1. Он не просто выдает ошибку «не поддерживается на вашей платформе», он останавливается навсегда. Это заставляет разработчика пытаться отлаживать множество факторов.
  2. Некоторые продукты Google Cloud используют gRPC, а некоторые нет. Поэтому любитель должен исследовать, что может сломаться.
  3. rPI очень популярны для создания прототипов IoT и для энтузиастов в целом.
...