tree 98f7b93b71621858e2e81851246267d798a8e812
parent a9f810caed2a04ebcd0f686816c42a76a936d300
author wenbingshen <oliver.shen999@gmail.com> 1642128355 +0800
committer GitHub <noreply@github.com> 1642128355 +0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJh4OPjCRBK7hj4Ov3rIwAAK0AIAErO5RDJt1dXVxnYsQ39xxGF
 3y2TRwo5xIjOs6zDj5G9xo/PWacaIAsZ6k6R2jC6y35bOiHZ29oiWLFsx0f2vj/F
 kvK7EDTSXlIEP1iSXUMejt/7bZwPjf2gU2oiox/8RgdU7huEaRnDvmyZe+dt/oxK
 HhjuLUMDCzaSNtUdc/YJ/KDMS0atai7Vhy4yhqzB9VuhXMcNk5IgBsIpeJwBeCCz
 gYjjhIS7WKZVyBjDFvLWa48Gxv8BYYQswZObbC6u2y/Nhb6FlIZt7BBZDk7sojEG
 0Xki8AEeQ0Q75ZeLQcnt6hjUbvyHa/VN1JR78KoCClqXs3bE49eeDzkqVL3Gv2A=
 =/Xw2
 -----END PGP SIGNATURE-----
 

fix no response to client when handleSubscribe because PendingAckHandleImpl init fail (#13655)

Fixes #13654 

### Modifications

When the initialization of `PendingAckHandleImpl` fails, `pendingAckHandleCompletableFuture` will not be exception or complete, then `org.apache.pulsar.broker.service.persistent.PersistentSubscription#addConsumer` will not return any response to the client.

```
public CompletableFuture<Void> addConsumer(Consumer consumer) {
        return pendingAckHandle.pendingAckHandleFuture().thenCompose(future -> ...)
}
```