Skip to content

Deadlock in server transport with multiple ports #6641

@dapengzhang0

Description

@dapengzhang0

ServerImpl.start() calls NettyServer.start() while holding ServerImpl.lock. NettyServer.start() awaits a submitted runnable in eventloop. However, this pending runnable may never be executed because the eventloop might be executing some other task, , like ServerListenerImpl.transportCreated(), that is trying to acquire ServerImpl.lock causing a deadlock.

This is a deadlock for multiple-port server transport usecase with the same deadlock mechanism as #6601.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions