You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by "rdhabalia (via GitHub)" <gi...@apache.org> on 2024/05/02 23:10:52 UTC
[I] [Bug] ReaderBuilder changes config state during reader creation failure due to server connection failure [pulsar]
rdhabalia opened a new issue, #22638:
URL: https://github.com/apache/pulsar/issues/22638
### Search before asking
- [X] I searched in the [issues](https://github.com/apache/pulsar/issues) and found nothing similar.
### Read release policy
- [X] I understand that unsupported versions don't get bug fixes. I will attempt to reproduce the issue on a supported version of Pulsar client and Pulsar broker.
### Version
any client version
### Minimal reproduce step
```
@Test
public void createAsyncChangeStateIssue() throws Exception {
ClientBuilder clientBuilder = PulsarClient.builder();
clientBuilder.serviceUrl("pulsar://badUrl");
PulsarClient client = clientBuilder.build();
ReaderBuilder<byte[]> readerBuilder = client.newReader()
.topic("persistent://tenant/ns1/t1").startMessageFromRollbackDuration(100, TimeUnit.SECONDS);
try {
readerBuilder.createAsync().get(1, TimeUnit.SECONDS);
} catch (TimeoutException e) {
log.info("Got expected timeout exception exception, retrying");
// The retry results in an IllegalArgumentException with message:
// Start message id or start message from roll back must be specified
// but they cannot be specified at the same time
readerBuilder.createAsync().get(1, TimeUnit.SECONDS);
}
}
```
Output:
```
java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Start message id or start message from roll back must be specified but they cannot be specified at the same time
at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396)
at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2096)
Caused by: java.lang.IllegalArgumentException: Start message id or start message from roll back must be specified but they cannot be specified at the same time
at org.apache.pulsar.client.impl.ReaderBuilderImpl.createAsync(ReaderBuilderImpl.java:93)
```
### What did you expect to see?
By any chance if ReaderBuilder fails to create Reader due to connection issue and if application retries then it should not receive `java.lang.IllegalArgumentException` because there is no such argument was given to ReaderImpl Builder. Instead Builder should not corrupt the arguments and create Reader to avoid creating lot of objects in memory and avoid memory pressure creation.
### What did you see instead?
Client gives `java.lang.IllegalArgumentException` even though there is no such illegal argument into the Reader Builder.
### Anything else?
_No response_
### Are you willing to submit a PR?
- [X] I'm willing to submit a PR!
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@pulsar.apache.org.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] [Bug] ReaderBuilder changes config state during reader creation failure due to server connection failure [pulsar]
Posted by "lhotari (via GitHub)" <gi...@apache.org>.
lhotari closed issue #22638: [Bug] ReaderBuilder changes config state during reader creation failure due to server connection failure
URL: https://github.com/apache/pulsar/issues/22638
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@pulsar.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org