Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[C++] Catch exception thrown by remote_endpoint #8486

Merged

Conversation

BewareMyPower
Copy link
Contributor

@BewareMyPower BewareMyPower commented Nov 9, 2020

Motivation

Boost asio socket::remote_point may throw boost::system::system_error on failure. If the C++ client library was compiled with some low version boost, like 1.54, even if async_connect success, the server could still be unreachable and an exception would be thrown by socket_->remote_endpoint().

Modifications

  • Catch the exception for socket_->remote_endpoint()
  • Add tests for when client connects to a unreachable service url
  • Fix header dependency because some boost *.hpp file doesn't include assert.h

Verifying this change

  • Make sure that the change passes the CI checks.

This change added tests and can be verified as follows:

  • Run testServerConnectError.

@BewareMyPower
Copy link
Contributor Author

/pulsarbot run-failure-checks

@jiazhai
Copy link
Member

jiazhai commented Nov 9, 2020

/pulsarbot run-failure-checks

1 similar comment
@BewareMyPower
Copy link
Contributor Author

/pulsarbot run-failure-checks

@codelipenghui codelipenghui merged commit 53cd2bb into apache:master Nov 10, 2020
@BewareMyPower BewareMyPower deleted the bewaremypower/boost-exception branch November 10, 2020 06:49
codelipenghui pushed a commit that referenced this pull request Nov 10, 2020
### Motivation

Boost asio `socket::remote_point` may throw `boost::system::system_error` on failure. If the C++ client library was compiled with some low version boost, like 1.54, even if `async_connect` success, the server could still be unreachable and an exception would be thrown by `socket_->remote_endpoint()`.

### Modifications

- Catch the exception for  `socket_->remote_endpoint()`
- Add tests for when client connects to a unreachable service url
- Fix header dependency because some boost *.hpp file doesn't include assert.h

### Verifying this change

- [ ] Make sure that the change passes the CI checks.

This change added tests and can be verified as follows:

  - Run `testServerConnectError`. 

(cherry picked from commit 53cd2bb)
@codelipenghui
Copy link
Contributor

cherry-picked to branch-2.6

codelipenghui pushed a commit to streamnative/pulsar-archived that referenced this pull request Nov 13, 2020
### Motivation

Boost asio `socket::remote_point` may throw `boost::system::system_error` on failure. If the C++ client library was compiled with some low version boost, like 1.54, even if `async_connect` success, the server could still be unreachable and an exception would be thrown by `socket_->remote_endpoint()`.

### Modifications

- Catch the exception for  `socket_->remote_endpoint()`
- Add tests for when client connects to a unreachable service url
- Fix header dependency because some boost *.hpp file doesn't include assert.h

### Verifying this change

- [ ] Make sure that the change passes the CI checks.

This change added tests and can be verified as follows:

  - Run `testServerConnectError`. 

(cherry picked from commit 53cd2bb)
(cherry picked from commit 7f04056)
flowchartsman pushed a commit to flowchartsman/pulsar that referenced this pull request Nov 17, 2020
### Motivation

Boost asio `socket::remote_point` may throw `boost::system::system_error` on failure. If the C++ client library was compiled with some low version boost, like 1.54, even if `async_connect` success, the server could still be unreachable and an exception would be thrown by `socket_->remote_endpoint()`.

### Modifications

- Catch the exception for  `socket_->remote_endpoint()`
- Add tests for when client connects to a unreachable service url
- Fix header dependency because some boost *.hpp file doesn't include assert.h

### Verifying this change

- [ ] Make sure that the change passes the CI checks.

This change added tests and can be verified as follows:

  - Run `testServerConnectError`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants