Skip to content

binder: A Server might check its SecurityPolicy even after declaring termination #12938

Description

@jdcormie

What version of gRPC-Java are you using?

master/HEAD on any version of Android

What did you expect to see?

Some reasoning/guarantee that a BinderServerTransport will no longer call into its SecurityPolicy after it declares termination.

Steps to reproduce the bug

One of many ways is to call call shutdownNow() while it's processing the first call to one of its services.

Analysis

BinderServerTransport has this problem when using either AsyncSecurityPolicy or ordinary SecurityPolicy. It checks these policies from the BinderTransportSecurity.ServerAuthInterceptor which runs on the server's executor() without coordination or synchronization with the transport. A call to shutdownInternal() w/forceTerminate=true can move the transport to SHUTDOWN_TERMINATED and call ServerTransportListener#transportTerminated with streams still in-flight.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions