0

NodeJS サーバーに接続する GRPC クライアントで GRPC バージョン: 1.1.2 & JDK バージョン:1.8 を使用しています。Java クライアントは正常に接続できますが、クライアントから切断すると、サーバー側で常に以下の例外が表示されます。

例外 (サーバー上のみ)

E0410 15:03:19.674531000 140735121084416 ssl_transport_security.c:439] SSL_read returned 0 unexpectedly.
E0410 15:03:19.674829000 140735121084416 secure_endpoint.c:185]        Decryption error: TSI_INTERNAL_ERROR

次の呼び出しで GRPC Java 接続をシャットダウンしています。

channel.shutdown().awaitTermination(5, TimeUnit.SECONDS);  //channel is ManagedChannel

この呼び出しを行う前に他のリソースをクリーンアップする必要がありますか、それとも別のメカニズムを使用してサーバーから完全に切断する必要がありますか?

編集 次のことも試してみると、同じエラーが発生することに気付きました。

channel.shutdown();  

Mac で OpenSSL を使用しています - デフォルトの Mac バージョン (OpenSSL 0.9.8zh 2016 年 1 月 14 日) を変更したことを思い出します。

grpc の secure_endpoint.c

 result = tsi_frame_protector_unprotect(ep->protector, message_bytes,
                                             &processed_message_size, cur,
                                             &unprotected_buffer_size_written);
      gpr_mu_unlock(&ep->protector_mu);
      if (result != TSI_OK) {
        gpr_log(GPR_ERROR, "Decryption error: %s",
                tsi_result_to_string(result));
        break;
      }
4

1 に答える 1