[GitHub] [pulsar] mattisonchao merged pull request #20075: [fix][broker] Fix avoid future of clear delayed message can't complete
mattisonchao merged PR #20075: URL: https://github.com/apache/pulsar/pull/20075 -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[pulsar] branch master updated: [fix][broker] Fix avoid future of clear delayed message can't complete (#20075)
This is an automated email from the ASF dual-hosted git repository. mattisonchao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/pulsar.git The following commit(s) were added to refs/heads/master by this push: new 6152cc82ac8 [fix][broker] Fix avoid future of clear delayed message can't complete (#20075) 6152cc82ac8 is described below commit 6152cc82ac8a344cfc2539c56f15cec6f4a1cff7 Author: Cong Zhao AuthorDate: Sat Apr 15 13:42:07 2023 +0800 [fix][broker] Fix avoid future of clear delayed message can't complete (#20075) --- .../BucketDelayedDeliveryTrackerFactory.java | 28 + .../pulsar/broker/delayed/bucket/Bucket.java | 3 +- .../bucket/BucketDelayedDeliveryTracker.java | 4 +- .../PersistentDispatcherMultipleConsumers.java | 17 .../broker/service/persistent/PersistentTopic.java | 26 +++- .../persistent/BucketDelayedDeliveryTest.java | 48 ++ 6 files changed, 102 insertions(+), 24 deletions(-) diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/delayed/BucketDelayedDeliveryTrackerFactory.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/delayed/BucketDelayedDeliveryTrackerFactory.java index f0feb8b27d6..6a00bfd1995 100644 --- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/delayed/BucketDelayedDeliveryTrackerFactory.java +++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/delayed/BucketDelayedDeliveryTrackerFactory.java @@ -21,13 +21,19 @@ package org.apache.pulsar.broker.delayed; import io.netty.util.HashedWheelTimer; import io.netty.util.Timer; import io.netty.util.concurrent.DefaultThreadFactory; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; +import org.apache.bookkeeper.mledger.ManagedCursor; import org.apache.pulsar.broker.PulsarService; import org.apache.pulsar.broker.ServiceConfiguration; import org.apache.pulsar.broker.delayed.bucket.BookkeeperBucketSnapshotStorage; import org.apache.pulsar.broker.delayed.bucket.BucketDelayedDeliveryTracker; import org.apache.pulsar.broker.delayed.bucket.BucketSnapshotStorage; import org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers; +import org.apache.pulsar.common.util.FutureUtil; public class BucketDelayedDeliveryTrackerFactory implements DelayedDeliveryTrackerFactory { @@ -72,6 +78,28 @@ public class BucketDelayedDeliveryTrackerFactory implements DelayedDeliveryTrack delayedDeliveryMaxIndexesPerBucketSnapshotSegment, delayedDeliveryMaxNumBuckets); } +/** + * Clean up residual snapshot data. + * If tracker has not been created or has been closed, then we can't clean up the snapshot with `tracker.clear`, + * this method can clean up the residual snapshots without creating a tracker. + */ +public CompletableFuture cleanResidualSnapshots(ManagedCursor cursor) { +Map cursorProperties = cursor.getCursorProperties(); +List> futures = new ArrayList<>(); +FutureUtil.Sequencer sequencer = FutureUtil.Sequencer.create(); +cursorProperties.forEach((k, v) -> { +if (k != null && v != null && k.startsWith(BucketDelayedDeliveryTracker.DELAYED_BUCKET_KEY_PREFIX)) { +CompletableFuture future = sequencer.sequential(() -> { +return cursor.removeCursorProperty(k) +.thenCompose(__ -> bucketSnapshotStorage.deleteBucketSnapshot(Long.parseLong(v))); +}); +futures.add(future); +} +}); + +return FutureUtil.waitForAll(futures); +} + @Override public void close() throws Exception { if (bucketSnapshotStorage != null) { diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/delayed/bucket/Bucket.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/delayed/bucket/Bucket.java index 5b7023be503..4d7d3aa512b 100644 --- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/delayed/bucket/Bucket.java +++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/delayed/bucket/Bucket.java @@ -18,8 +18,8 @@ */ package org.apache.pulsar.broker.delayed.bucket; -import static org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.CURSOR_INTERNAL_PROPERTY_PREFIX; import static org.apache.bookkeeper.mledger.util.Futures.executeWithRetry; +import static org.apache.pulsar.broker.delayed.bucket.BucketDelayedDeliveryTracker.DELAYED_BUCKET_KEY_PREFIX; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -41,7 +41,6 @@ import org.roaringbitmap.RoaringBitmap; @AllArgsConstructor abstract class Bucket { -static final String DELAYED_BUCKET_KEY_PREFIX = CURSOR_INTERNAL_PROPERTY_PREFIX + "delayed.bucket"; static final String DELIMITER = "_"; static final int
[GitHub] [pulsar] yaalsn commented on issue #19609: [Bug] Docker build fails if UBUNTU_MIRROR is not set
yaalsn commented on issue #19609: URL: https://github.com/apache/pulsar/issues/19609#issuecomment-1509515603 @tisonkun I think we should use the official mirrors. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] github-actions[bot] commented on pull request #20110: [improve][broker] Fix ServiceUnitStateCompactionStrategy to cover fast-forward cursor behavior after compaction
github-actions[bot] commented on PR #20110: URL: https://github.com/apache/pulsar/pull/20110#issuecomment-1509493747 @heesung-sn Please add the following content to your PR description and select a checkbox: ``` - [ ] `doc` - [ ] `doc-required` - [ ] `doc-not-needed` - [ ] `doc-complete` ``` -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] heesung-sn opened a new pull request, #20110: [improve][broker] Fix ServiceUnitStateCompactionStrategy to cover fast-forward cursor behavior after compaction
heesung-sn opened a new pull request, #20110: URL: https://github.com/apache/pulsar/pull/20110 Fixes #xyz Master Issue: #xyz PIP: #xyz ### Motivation ### Modifications ### Verifying this change - [ ] Make sure that the change passes the CI checks. *(Please pick either of the following options)* This change is a trivial rework / code cleanup without any test coverage. *(or)* This change is already covered by existing tests, such as *(please describe tests)*. *(or)* This change added tests and can be verified as follows: *(example:)* - *Added integration tests for end-to-end deployment with large payloads (10MB)* - *Extended integration test for recovery after broker failure* ### Does this pull request potentially affect one of the following parts: *If the box was checked, please highlight the changes* - [ ] Dependencies (add or upgrade a dependency) - [ ] The public API - [ ] The schema - [ ] The default values of configurations - [ ] The threading model - [ ] The binary protocol - [ ] The REST endpoints - [ ] The admin CLI options - [ ] The metrics - [ ] Anything that affects deployment ### Documentation - [ ] `doc` - [ ] `doc-required` - [ ] `doc-not-needed` - [ ] `doc-complete` ### Matching PR in forked repository PR in forked repository: -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] github-actions[bot] commented on pull request #19662: [feat][txn] Support for idempotent commit and abort, Solution1.
github-actions[bot] commented on PR #19662: URL: https://github.com/apache/pulsar/pull/19662#issuecomment-1509459381 The pr had no activity for 30 days, mark with Stale label. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] github-actions[bot] commented on issue #19744: PIP-255: Support for Idempotent Commit and Abort.
github-actions[bot] commented on issue #19744: URL: https://github.com/apache/pulsar/issues/19744#issuecomment-1509459301 The issue had no activity for 30 days, mark with Stale label. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] github-actions[bot] commented on issue #19792: Flaky-test: org.apache.pulsar.broker.stats.MetadataStoreStatsTest.testBatchMetadataStoreMetrics
github-actions[bot] commented on issue #19792: URL: https://github.com/apache/pulsar/issues/19792#issuecomment-1509459260 The issue had no activity for 30 days, mark with Stale label. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] github-actions[bot] commented on pull request #19794: [fix][authentication][branch-2.10] Store the original authentication data
github-actions[bot] commented on PR #19794: URL: https://github.com/apache/pulsar/pull/19794#issuecomment-1509459238 The pr had no activity for 30 days, mark with Stale label. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] github-actions[bot] commented on issue #19814: [Bug] [txn] Consumer can receive txn aborted message when readType is replay
github-actions[bot] commented on issue #19814: URL: https://github.com/apache/pulsar/issues/19814#issuecomment-1509459198 The issue had no activity for 30 days, mark with Stale label. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-site] momo-jun commented on pull request #513: matrix page
momo-jun commented on PR #513: URL: https://github.com/apache/pulsar-site/pull/513#issuecomment-1509422602 Thanks Lili. Add a few questions: 1. How to maintain the status in these tables? We need a user-friendly way so that maintainers can update the table on a regular basis. 2. Can we fold each table? Or add hot links on the right side so that users can read the whole page at a glance. 3. Can we add a scroll bar horizontally and vertically? Now the consumer matrix cannot be displayed in one screen, so we may lose the table header when looking at the bottom row. BTW, We plan to add reader/tableview in the next delivery phase and can add them when iterating the matrix. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] michaeljmarshall commented on a diff in pull request #19461: [improve][authorization] Uniformly use allowTopicOperationAsync to check permissions
michaeljmarshall commented on code in PR #19461: URL: https://github.com/apache/pulsar/pull/19461#discussion_r1167295009 ## pulsar-broker-common/src/main/java/org/apache/pulsar/broker/authorization/AuthorizationProvider.java: ## @@ -129,11 +142,15 @@ CompletableFuture canConsumeAsync(TopicName topicName, String role, * * @param topicName * @param role - * @return - * @throws Exception + * + * @deprecated + * Use {@link #allowTopicOperationAsync(TopicName, String, TopicOperation, AuthenticationDataSource)} instead. */ -CompletableFuture canLookupAsync(TopicName topicName, String role, -AuthenticationDataSource authenticationData); +@Deprecated +default CompletableFuture canLookupAsync(TopicName topicName, String role, +AuthenticationDataSource authenticationData) { +return CompletableFuture.completedFuture(false); +} Review Comment: Instead of providing a default implementation, I think we should just deprecate these methods. Then, in the `PulsarAuthorizationProvider` class, we can remove the `@Override` annotation and those methods become internal implementation details instead of top level methods on the interface. ## pulsar-broker-common/src/main/java/org/apache/pulsar/broker/authorization/AuthorizationProvider.java: ## @@ -345,9 +362,41 @@ default CompletableFuture allowTopicOperationAsync(TopicName topic, String role, TopicOperation operation, AuthenticationDataSource authData) { -return FutureUtil.failedFuture( -new IllegalStateException("TopicOperation [" + operation.name() + "] is not supported by the Authorization" -+ "provider you are using.")); Review Comment: Are you able to explain a bit more why this is required for backwards compatibility? I think we should be able to leave this here and leave the `switch` statement in the `PulsarAuthorizationProvider`. ## pulsar-broker-common/src/main/java/org/apache/pulsar/broker/authorization/AuthorizationService.java: ## @@ -273,7 +281,7 @@ public CompletableFuture canLookupAsync(TopicName topicName, String rol if (isSuperUser) { return CompletableFuture.completedFuture(true); } else { -return provider.canLookupAsync(topicName, role, authenticationData); +return provider.allowTopicOperationAsync(topicName, role, TopicOperation.LOOKUP, authenticationData); Review Comment: This is only tangentially related to your PR, but it seems like a broken abstraction that the `AuthorizationService` decides that the `superuser` privilege supersedes the `AuthenticationProvider` implementaiton. Instead, I think we could just call `provider.allowTopicOperationAsync(topicName, role, TopicOperation.LOOKUP, authenticationData);`, as you've done here. My goal is to move that logic into the provider so that plugin implementations do not need to deal with the complexity of when to check for super user and when not to. All of this logic should be delegated to the provider, in my opinion. That change is probably worth its own PR, though. ## pulsar-broker-common/src/main/java/org/apache/pulsar/broker/authorization/AuthorizationService.java: ## @@ -191,7 +192,14 @@ public CompletableFuture canConsumeAsync(TopicName topicName, String ro if (isSuperUser) { return CompletableFuture.completedFuture(true); } else { -return provider.canConsumeAsync(topicName, role, authenticationData, subscription); +AuthenticationDataSource subscriptionDataSource; +if (authenticationData instanceof AuthenticationDataSubscription) { +subscriptionDataSource = authenticationData; +} else { +subscriptionDataSource = new AuthenticationDataSubscription(authenticationData, subscription); +} +return provider.allowTopicOperationAsync(topicName, role, TopicOperation.CONSUME, +subscriptionDataSource); Review Comment: Can we deprecate this `canConsumeAsync` method? It seems like the same kind of logic that we're deprecating in the `AuthorizationProvider`. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] onobc commented on a diff in pull request #20106: [fix][admin] Add javax.xml to shade
onobc commented on code in PR #20106: URL: https://github.com/apache/pulsar/pull/20106#discussion_r1167274462 ## pulsar-client-admin-shaded/pom.xml: ## @@ -131,6 +131,7 @@ com.yahoo.datasketches:sketches-core org.glassfish.jersey*:* javax.ws.rs:* + javax.xml.bind:* Review Comment: @nodece this inclusion/relocation looks good. I think we need to do the same thing to [pulsar-client-all/pom.xml](https://github.com/apache/pulsar/blob/091ee2504ffbe6ec98e354b76e7f4c045e1914aa/pulsar-client-all/pom.xml#L184). -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-adapters] swamymavuri commented on pull request #46: [Issue #45] [pulsar-client-kafka-compat] Handled Kafka record headers…
swamymavuri commented on PR #46: URL: https://github.com/apache/pulsar-adapters/pull/46#issuecomment-1509121809 @cbornet , Can you please take a look at this PR and let me know if i need to add any -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] hpvd added a comment to the discussion: Pulsar Shell: native image with GraalVM
GitHub user hpvd added a comment to the discussion: Pulsar Shell: native image with GraalVM could Quarkus provide some help moving in this direction? see > **Quarkus tailors your application for GraalVM** and HotSpot. Amazingly fast > boot time, incredibly low RSS memory (not just heap size!) offering near > instant scale up and high density memory utilization in container > orchestration platforms like Kubernetes. We use a technique we call compile > time boot. https://quarkus.io/ GitHub link: https://github.com/apache/pulsar/discussions/20095#discussioncomment-5619197 This is an automatically sent email for commits@pulsar.apache.org. To unsubscribe, please send an email to: commits-unsubscr...@pulsar.apache.org
[GitHub] [pulsar] aymkhalil commented on a diff in pull request #20104: [fix][schema] Apply Schema for GenericJsonRecord if present
aymkhalil commented on code in PR #20104: URL: https://github.com/apache/pulsar/pull/20104#discussion_r1167159803 ## pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericJsonRecord.java: ## @@ -39,17 +42,20 @@ public class GenericJsonRecord extends VersionedGenericRecord { private final JsonNode jn; private final SchemaInfo schemaInfo; -GenericJsonRecord(byte[] schemaVersion, - List fields, - JsonNode jn) { +GenericJsonRecord(byte[] schemaVersion, List fields, JsonNode jn) { this(schemaVersion, fields, jn, null); } -public GenericJsonRecord(byte[] schemaVersion, - List fields, - JsonNode jn, SchemaInfo schemaInfo) { +@SneakyThrows +public GenericJsonRecord(byte[] schemaVersion, List fields, JsonNode jn, SchemaInfo schemaInfo) { super(schemaVersion, fields); -this.jn = jn; +if (schemaInfo == null) { Review Comment: I wonder if we should just mark schemaInfo @NonNull - it seems GenericJsonRecord is only meant to be used with Schema (otherwise, we open the door for schema/java type mismatch). -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] michaeljmarshall opened a new issue, #20108: Provide way to invalidate an AuthenticationProvider's Cache
michaeljmarshall opened a new issue, #20108: URL: https://github.com/apache/pulsar/issues/20108 ### Search before asking - [X] I searched in the [issues](https://github.com/apache/pulsar/issues) and found nothing similar. ### Motivation When an unexpected signing key rotation occurs, the OpenID Connect Authentication Provider will not discover the new signing key and invalidate the old signing key until its cache expires. The current solution is to restart each broker, proxy, websocket proxy, and function worker. That process creates unnecessary downtime. Ideally, we can find a solution that maximizes control of the cache without introducing unnecessary service disruptions. ### Solution One solution could be to create a way to invalidate an `AuthenticationProvider`'s cache. It would seem like we'd also need a way to force all connections to be re-authenticated. Perhaps that is best achieved by disconnecting all clients or by some other means. ### Alternatives _No response_ ### Anything else? It might also make sense to update the Open ID Connect Authentication Provider's implementation to follow the cache control headers returned by the identity provider. ### Are you willing to submit a PR? - [ ] 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-unsubscr...@pulsar.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-cpp] BewareMyPower commented on pull request #230: [feat] Support consumer batch receive on C client.
BewareMyPower commented on PR #230: URL: https://github.com/apache/pulsar-client-cpp/pull/230#issuecomment-1509049662 After thinking for a while, I think the APIs should also be considered carefully. And we should fix the memory leak. So I opened another PR (https://github.com/apache/pulsar-client-cpp/pull/252) for that. In my PR, the main differences are: - For `pulsar_messages_t`, only support read-only operations (`get(i)` and `size()`). We should not expose methods that could modify it. - The `pulsar_message_t*` returned by `pulsar_messages_get` should not be freed. It should just be a const reference to a message for users to view the content. Allocating a `pulsar_message_t` for it brings unnecessary overhead. - More detailed API docs to tell users how to use these C APIs. - The memory leak is fixed. Let's move to my PR for further discussion. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] michaeljmarshall opened a new issue, #20107: Support invalidating client's OAuth2 token after receiving an authentication exception
michaeljmarshall opened a new issue, #20107: URL: https://github.com/apache/pulsar/issues/20107 ### Search before asking - [X] I searched in the [issues](https://github.com/apache/pulsar/issues) and found nothing similar. ### Motivation The `AuthenticationOAuth2` provider only retrieves a new token when the current one has expired. https://github.com/apache/pulsar/blob/82237d3684fe506bcb6426b3b23f413422e6e4fb/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/oauth2/AuthenticationOAuth2.java#L99-L106 However, when there is an unexpected signing key rotation, which can happen for several reasons, a client will fail to authenticate until the token expires. ### Solution The client could invalidate the cached token and retrieve a new one. Note that this is happening when authentication has already failed, so the current token is already known to be invalid. ### Alternatives _No response_ ### Anything else? _No response_ ### Are you willing to submit a PR? - [ ] 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-unsubscr...@pulsar.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-cpp] BewareMyPower opened a new pull request, #252: [C API] Support synchronous consumer batch receive
BewareMyPower opened a new pull request, #252: URL: https://github.com/apache/pulsar-client-cpp/pull/252 ### Motivation This is the 1st PR to support the batch receive feature for C APIs. ### Modifications - Add the `pulsar_messages_t` struct to represent a list of messages - Add the `pulsar_messages_get` and `pulsar_messages_size` functions to traverse all messages in `pulsar_messages_t` - Add the `pulsar_consumer_batch_receive` function to receive messages in batch and the `pulsar_messages_free` function to free the allocated memory. - Add `c_ConsumerTest.testBatchReceive` to test batch receive. ### Verifications There is no memory leak in the test: ```bash $ valgrind --leak-check=full ./tests/pulsar-tests --gtest_filter='c_ConsumerTest.*' ... ==3019==definitely lost: 0 bytes in 0 blocks ==3019==indirectly lost: 0 bytes in 0 blocks ==3019== possibly lost: 0 bytes in 0 blocks ``` ### TODO - Batch receive policy - Asynchronous batch receive - Fix memory leak in other C tests ### Documentation - [ ] `doc-required` (Your PR needs to update docs and you will update later) - [ ] `doc-not-needed` (Please explain why) - [x] `doc` (Your PR contains doc changes) - [ ] `doc-complete` (Docs have been already added) -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] aymkhalil commented on issue #20092: [Bug] Pulsar client AUTO_CONSUME "double" as "BigDecimal" in JSON schemas
aymkhalil commented on issue #20092: URL: https://github.com/apache/pulsar/issues/20092#issuecomment-1509027797 Thanks @tisonkun - I verified your patch locally and it works well. I think it is reasonable because IIUC the `USE_BIG_DECIMAL_FOR_FLOATS` works for deserialization and used internally to fix the referenced SQL issue, but your patch makes the JsonNode respect the schema which is what an external user would expect (in between, there wouldn't be any precision loss). If it makes sense, one potential test case is to make sure the GenericJsonObject and the JsonNode available via NativeObject return the same node types. For example, before your patch ``` ((JsonNode)message.getValue().getNativeObject()).get("xdouble").numberValue() --> BigDecimal ((GenericJsonRecord)message.getValue()).getField("xdouble") --> Double ``` The reason why the latter would work before your fix is because it uses the constructor variant that accepts the schema info. A test to detect a mismatch would've been one early indicator. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] nodece commented on issue #19856: Update jaxb and jax-rs libs
nodece commented on issue #19856: URL: https://github.com/apache/pulsar/issues/19856#issuecomment-1509008438 Hi @onobc, I made https://github.com/apache/pulsar/pull/20106 to fix this issue, could you confirm this 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] nodece opened a new pull request, #20106: [fix][admin] Add javax.xml to shade
nodece opened a new pull request, #20106: URL: https://github.com/apache/pulsar/pull/20106 Fixes #19856 ### Motivation `javax.xml.bind` didn't package into the shade package. ### Modifications Add `javax.xml.bind` to `pulsar-client-admin-shaded/pom.xml`. ### Documentation - [ ] `doc` - [ ] `doc-required` - [x] `doc-not-needed` - [ ] `doc-complete` -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] onobc commented on issue #19856: Update jaxb and jax-rs libs
onobc commented on issue #19856: URL: https://github.com/apache/pulsar/issues/19856#issuecomment-1508997866 Thanks for the info @tisonkun , If it comes down to just finding a resource to implement I could probably volunteer for that as this is quite important to our usage of the client. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] tisonkun commented on issue #19856: Update jaxb and jax-rs libs
tisonkun commented on issue #19856: URL: https://github.com/apache/pulsar/issues/19856#issuecomment-1508981321 Maybe I can cc the release manager @RobertIndie @poorbarcode @cbornet here for advice. This can impact how users integrate with 3.0.0 but I understand that we don't have too much time now following the time-based release cycle. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] tisonkun commented on issue #19856: Update jaxb and jax-rs libs
tisonkun commented on issue #19856: URL: https://github.com/apache/pulsar/issues/19856#issuecomment-1508980136 For 3.0.0, the schedule is set as: * 2023-04-11 - RC-1 * 2023-04-18 - RC-2 * 2023-04-25 - RC-3 * 2023-05-02 - Announce 3.0 Release You can subscribe to d...@pulsar.apache.org for updates. For example, RC-1 is out at https://lists.apache.org/thread/jf0zrb84j9sj7106jyd9gqlw1rcp6k4m > Can we get this issue in as well Given the schedule above, I'm afraid that we're already code freeze. Anyway, we share a volunteer-based community so it still need a volunteer to find time and take it over. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] onobc commented on issue #19856: Update jaxb and jax-rs libs
onobc commented on issue #19856: URL: https://github.com/apache/pulsar/issues/19856#issuecomment-1508975272 I just noticed that the `3.0.0` milestone only has 2 issues associated w/ it. Can we get this issue in as well? Also, when will there be an RC for `3.0.0`? -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] tisonkun commented on a diff in pull request #20096: [improve][broker] Harden non-null checker
tisonkun commented on code in PR #20096: URL: https://github.com/apache/pulsar/pull/20096#discussion_r1167084512 ## managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java: ## @@ -3066,34 +3068,38 @@ boolean shouldCloseLedger(LedgerHandle lh) { } } -void switchToNewLedger(final LedgerHandle lh, final VoidCallback callback) { +void switchToNewLedger(@Nonnull LedgerHandle lh, VoidCallback callback) { +requireNonNull(lh, "LedgerHandle should not be null"); + if (log.isDebugEnabled()) { log.debug("[{}] Switching cursor {} to ledger {}", ledger.getName(), name, lh.getId()); } + persistPositionMetaStore(lh.getId(), lastMarkDeleteEntry.newPosition, lastMarkDeleteEntry.properties, -new MetaStoreCallback() { Review Comment: Reverted. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] tisonkun commented on issue #19609: [Bug] Docker build fails if UBUNTU_MIRROR is not set
tisonkun commented on issue #19609: URL: https://github.com/apache/pulsar/issues/19609#issuecomment-1508955324 @yaalsn what do you exactly propose here? -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-cpp] BewareMyPower commented on a diff in pull request #230: [feat] Support consumer batch receive on C client.
BewareMyPower commented on code in PR #230: URL: https://github.com/apache/pulsar-client-cpp/pull/230#discussion_r1167064674 ## tests/c/c_ConsumerTest.cc: ## @@ -0,0 +1,78 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +#include +#include +const char *lookup_url = "pulsar://localhost:6650"; + +TEST(C_ConsumerConfigurationTest, testCBatchReceive) { +const char *topic_name = "persistent://public/default/test-c-batch-receive5"; +const char *sub_name = "my-sub-name"; + +pulsar_client_configuration_t *conf = pulsar_client_configuration_create(); +pulsar_client_t *client = pulsar_client_create(lookup_url, conf); + +pulsar_producer_configuration_t *producer_conf = pulsar_producer_configuration_create(); +pulsar_producer_t *producer; +pulsar_result result = pulsar_client_create_producer(client, topic_name, producer_conf, ); +ASSERT_EQ(pulsar_result_Ok, result); + +pulsar_consumer_configuration_t *consumer_conf = pulsar_consumer_configuration_create(); +const int batch_receive_max_size = 10; + +pulsar_consumer_batch_receive_policy_t batch_receive_policy{batch_receive_max_size, -1, -1}; +pulsar_consumer_configuration_set_batch_receive_policy(consumer_conf, _receive_policy); + +pulsar_consumer_t *consumer; +result = pulsar_client_subscribe(client, topic_name, sub_name, consumer_conf, ); +ASSERT_EQ(pulsar_result_Ok, result); + +// Send messages +const char *data = "my-content"; +for (int i = 0; i < batch_receive_max_size; i++) { +pulsar_message_t *message = pulsar_message_create(); +pulsar_message_set_content(message, data, strlen(data)); +pulsar_result res = pulsar_producer_send(producer, message); +ASSERT_EQ(pulsar_result_Ok, res); +pulsar_message_free(message); +} + +// Batch receive messages +pulsar_messages_t *msgs = pulsar_messages_create(); +pulsar_result res = pulsar_consumer_batch_receive(consumer, ); Review Comment: > You seem to be executing C_ConsumerConfigurationTest, Then I find another problem. Your test class in `tests/c/c_ConsumerTest.cc` is `C_ConsumerConfigurationTest`, not `C_ConsumerTest`. ```c++ TEST(C_ConsumerConfigurationTest, testCBatchReceive) { ``` It's better to make class name similar with the file name. BTW, I ran the valgrind check for this single test and the memory leak still exists. ```bash $ valgrind --leak-check=full ./tests/pulsar-tests --gtest_filter='*.testCBatchReceive' ==24889== LEAK SUMMARY: ==24889==definitely lost: 344 bytes in 11 blocks ==24889==indirectly lost: 11,568 bytes in 82 blocks ==24889== possibly lost: 0 bytes in 0 blocks ``` After I changed the initial value of `message` to `NULL`, there were still memory leak: ``` ==25180==by 0x5A3537: C_ConsumerConfigurationTest_testCBatchReceive_Test::TestBody() (c_ConsumerTest.cc:61) ... ==25180==definitely lost: 320 bytes in 10 blocks ==25180==indirectly lost: 11,568 bytes in 82 blocks ==25180== possibly lost: 0 bytes in 0 blocks ``` ```c++ pulsar_message_t *msg = pulsar_messages_get(msgs, i); ``` So there is something wrong with the `pulsar_messages_get` function. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-cpp] BewareMyPower commented on a diff in pull request #230: [feat] Support consumer batch receive on C client.
BewareMyPower commented on code in PR #230: URL: https://github.com/apache/pulsar-client-cpp/pull/230#discussion_r1167053780 ## tests/c/c_ConsumerTest.cc: ## @@ -0,0 +1,78 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +#include +#include +const char *lookup_url = "pulsar://localhost:6650"; + +TEST(C_ConsumerConfigurationTest, testCBatchReceive) { +const char *topic_name = "persistent://public/default/test-c-batch-receive5"; +const char *sub_name = "my-sub-name"; + +pulsar_client_configuration_t *conf = pulsar_client_configuration_create(); +pulsar_client_t *client = pulsar_client_create(lookup_url, conf); + +pulsar_producer_configuration_t *producer_conf = pulsar_producer_configuration_create(); +pulsar_producer_t *producer; +pulsar_result result = pulsar_client_create_producer(client, topic_name, producer_conf, ); +ASSERT_EQ(pulsar_result_Ok, result); + +pulsar_consumer_configuration_t *consumer_conf = pulsar_consumer_configuration_create(); +const int batch_receive_max_size = 10; + +pulsar_consumer_batch_receive_policy_t batch_receive_policy{batch_receive_max_size, -1, -1}; +pulsar_consumer_configuration_set_batch_receive_policy(consumer_conf, _receive_policy); + +pulsar_consumer_t *consumer; +result = pulsar_client_subscribe(client, topic_name, sub_name, consumer_conf, ); +ASSERT_EQ(pulsar_result_Ok, result); + +// Send messages +const char *data = "my-content"; +for (int i = 0; i < batch_receive_max_size; i++) { +pulsar_message_t *message = pulsar_message_create(); +pulsar_message_set_content(message, data, strlen(data)); +pulsar_result res = pulsar_producer_send(producer, message); +ASSERT_EQ(pulsar_result_Ok, res); +pulsar_message_free(message); +} + +// Batch receive messages +pulsar_messages_t *msgs = pulsar_messages_create(); +pulsar_result res = pulsar_consumer_batch_receive(consumer, ); Review Comment: ```c // 1. You allocated a `pulsar_messages_t` object via `pulsar_messages_created()` and // let `msgs` points to this piece of memory pulsar_messages_t *msgs = pulsar_messages_create(); // 2. After `pulsar_consumer_batch_receive`, `msgs` points to another piece of memory that // is allocated inside `pulsar_consumer_batch_receive`. pulsar_result res = pulsar_consumer_batch_receive(consumer, ); // 3. The memory allocated inside `pulsar_consumer_batch_receive` is deallocated. pulsar_messages_free(msgs); // NOTE: Now, the memory allocated by `pulsar_messages_created()` could never be deallocated! ``` -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-cpp] shibd commented on a diff in pull request #230: [feat] Support consumer batch receive on C client.
shibd commented on code in PR #230: URL: https://github.com/apache/pulsar-client-cpp/pull/230#discussion_r1166984212 ## tests/c/c_ConsumerTest.cc: ## @@ -0,0 +1,78 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +#include +#include +const char *lookup_url = "pulsar://localhost:6650"; + +TEST(C_ConsumerConfigurationTest, testCBatchReceive) { +const char *topic_name = "persistent://public/default/test-c-batch-receive5"; +const char *sub_name = "my-sub-name"; + +pulsar_client_configuration_t *conf = pulsar_client_configuration_create(); +pulsar_client_t *client = pulsar_client_create(lookup_url, conf); + +pulsar_producer_configuration_t *producer_conf = pulsar_producer_configuration_create(); +pulsar_producer_t *producer; +pulsar_result result = pulsar_client_create_producer(client, topic_name, producer_conf, ); +ASSERT_EQ(pulsar_result_Ok, result); + +pulsar_consumer_configuration_t *consumer_conf = pulsar_consumer_configuration_create(); +const int batch_receive_max_size = 10; + +pulsar_consumer_batch_receive_policy_t batch_receive_policy{batch_receive_max_size, -1, -1}; +pulsar_consumer_configuration_set_batch_receive_policy(consumer_conf, _receive_policy); + +pulsar_consumer_t *consumer; +result = pulsar_client_subscribe(client, topic_name, sub_name, consumer_conf, ); +ASSERT_EQ(pulsar_result_Ok, result); + +// Send messages +const char *data = "my-content"; +for (int i = 0; i < batch_receive_max_size; i++) { +pulsar_message_t *message = pulsar_message_create(); +pulsar_message_set_content(message, data, strlen(data)); +pulsar_result res = pulsar_producer_send(producer, message); +ASSERT_EQ(pulsar_result_Ok, res); +pulsar_message_free(message); +} + +// Batch receive messages +pulsar_messages_t *msgs = pulsar_messages_create(); +pulsar_result res = pulsar_consumer_batch_receive(consumer, ); Review Comment: > When res is pulsar_result_OK, it's guaranteed that msgs points to an object allocated by the library and should be deallocated by pulsar_messages_free. With the current implementation, the user needs to manually free the `pulsar_messages_t`, is there anything wrong with this? ``` pulsar_messages_t *msgs = pulsar_messages_create(); pulsar_result res = pulsar_consumer_batch_receive(consumer, ); // do something. pulsar_messages_free(msgs); ``` > With the current implementation, there is a memory leak that the instance created by pulsar_messages_create won't be released. You seem to be executing `C_ConsumerConfigurationTest`, in this test, the configured memory is not freed, I added it. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] niharrathod commented on issue #19456: Flaky-test: MetadataStoreStatsTest.testMetadataStoreStats
niharrathod commented on issue #19456: URL: https://github.com/apache/pulsar/issues/19456#issuecomment-1508767436 @tisonkun : I agree, I was just sharing info :). I just looked at it again and I can see, there is fix [PR#19829](https://github.com/apache/pulsar/pull/19829) around the same line(MetadataStoreStatsTest.java:113) where is issue occurred. I am not sure that fixes this or not. You can take a call to close or keep it open in case we see it again. I am actually not looking at it as of now. feel free to assign to anyone :) -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] lifepuzzlefun commented on a diff in pull request #20086: [fix][broker] Ensure previous delayed index be removed from snapshotSegmentLastIndexTable & Make load operate asynchronous
lifepuzzlefun commented on code in PR #20086: URL: https://github.com/apache/pulsar/pull/20086#discussion_r1166912389 ## pulsar-broker/src/main/java/org/apache/pulsar/broker/delayed/bucket/BucketDelayedDeliveryTracker.java: ## @@ -567,26 +574,19 @@ public synchronized NavigableSet getScheduledMessages(int maxMessa log.debug("[{}] Loading next bucket snapshot segment, bucketKey: {}, nextSegmentEntryId: {}", dispatcher.getName(), bucket.bucketKey(), preSegmentEntryId + 1); } -// All message of current snapshot segment are scheduled, load next snapshot segment -// TODO make it asynchronous and not blocking this process -try { -boolean createFutureDone = bucket.getSnapshotCreateFuture().orElse(NULL_LONG_PROMISE).isDone(); - -if (!createFutureDone) { -log.info("[{}] Skip load to wait for bucket snapshot create finish, bucketKey:{}", -dispatcher.getName(), bucket.bucketKey()); -break; -} - -if (bucket.currentSegmentEntryId == bucket.lastSegmentEntryId) { - immutableBuckets.asMapOfRanges().remove(Range.closed(bucket.startLedgerId, bucket.endLedgerId)); -bucket.asyncDeleteBucketSnapshot(stats); -continue; -} +boolean createFutureDone = bucket.getSnapshotCreateFuture().orElse(NULL_LONG_PROMISE).isDone(); +if (!createFutureDone) { +log.info("[{}] Skip load to wait for bucket snapshot create finish, bucketKey:{}", +dispatcher.getName(), bucket.bucketKey()); +break; +} -long loadStartTime = System.currentTimeMillis(); - stats.recordTriggerEvent(BucketDelayedMessageIndexStats.Type.load); - bucket.asyncLoadNextBucketSnapshotEntry().thenAccept(indexList -> { +long loadStartTime = System.currentTimeMillis(); + stats.recordTriggerEvent(BucketDelayedMessageIndexStats.Type.load); +CompletableFuture loadFuture = pendingLoad = bucket.asyncLoadNextBucketSnapshotEntry() Review Comment: can this line split into multi line ? var a = b = c seems not usual : - ) -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] lifepuzzlefun commented on a diff in pull request #20086: [fix][broker] Ensure previous delayed index be removed from snapshotSegmentLastIndexTable & Make load operate asynchronous
lifepuzzlefun commented on code in PR #20086: URL: https://github.com/apache/pulsar/pull/20086#discussion_r1166912389 ## pulsar-broker/src/main/java/org/apache/pulsar/broker/delayed/bucket/BucketDelayedDeliveryTracker.java: ## @@ -567,26 +574,19 @@ public synchronized NavigableSet getScheduledMessages(int maxMessa log.debug("[{}] Loading next bucket snapshot segment, bucketKey: {}, nextSegmentEntryId: {}", dispatcher.getName(), bucket.bucketKey(), preSegmentEntryId + 1); } -// All message of current snapshot segment are scheduled, load next snapshot segment -// TODO make it asynchronous and not blocking this process -try { -boolean createFutureDone = bucket.getSnapshotCreateFuture().orElse(NULL_LONG_PROMISE).isDone(); - -if (!createFutureDone) { -log.info("[{}] Skip load to wait for bucket snapshot create finish, bucketKey:{}", -dispatcher.getName(), bucket.bucketKey()); -break; -} - -if (bucket.currentSegmentEntryId == bucket.lastSegmentEntryId) { - immutableBuckets.asMapOfRanges().remove(Range.closed(bucket.startLedgerId, bucket.endLedgerId)); -bucket.asyncDeleteBucketSnapshot(stats); -continue; -} +boolean createFutureDone = bucket.getSnapshotCreateFuture().orElse(NULL_LONG_PROMISE).isDone(); +if (!createFutureDone) { +log.info("[{}] Skip load to wait for bucket snapshot create finish, bucketKey:{}", +dispatcher.getName(), bucket.bucketKey()); +break; +} -long loadStartTime = System.currentTimeMillis(); - stats.recordTriggerEvent(BucketDelayedMessageIndexStats.Type.load); - bucket.asyncLoadNextBucketSnapshotEntry().thenAccept(indexList -> { +long loadStartTime = System.currentTimeMillis(); + stats.recordTriggerEvent(BucketDelayedMessageIndexStats.Type.load); +CompletableFuture loadFuture = pendingLoad = bucket.asyncLoadNextBucketSnapshotEntry() Review Comment: can this line split into multi line ? -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[pulsar-client-cpp] branch main updated: [feat] Support set consumer regex subscription mode for C client. (#247)
This is an automated email from the ASF dual-hosted git repository. baodi pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/pulsar-client-cpp.git The following commit(s) were added to refs/heads/main by this push: new 4d659a8 [feat] Support set consumer regex subscription mode for C client. (#247) 4d659a8 is described below commit 4d659a81aff34794a3f0a977057b72a37204b347 Author: Baodi Shi AuthorDate: Fri Apr 14 21:40:12 2023 +0800 [feat] Support set consumer regex subscription mode for C client. (#247) --- include/pulsar/c/consumer_configuration.h | 18 ++ lib/c/c_ConsumerConfiguration.cc | 13 + tests/c/c_ConsumerConfigurationTest.cc| 5 + 3 files changed, 36 insertions(+) diff --git a/include/pulsar/c/consumer_configuration.h b/include/pulsar/c/consumer_configuration.h index d6c4fcd..16124a8 100644 --- a/include/pulsar/c/consumer_configuration.h +++ b/include/pulsar/c/consumer_configuration.h @@ -79,6 +79,16 @@ typedef enum pulsar_ConsumerConsume } pulsar_consumer_crypto_failure_action; +typedef enum +{ +// Only subscribe to persistent topics. +pulsar_consumer_regex_sub_mode_PersistentOnly = 0, +// Only subscribe to non-persistent topics. +pulsar_consumer_regex_sub_mode_NonPersistentOnly = 1, +// Subscribe to both persistent and non-persistent topics. +pulsar_consumer_regex_sub_mode_AllTopics = 2 +} pulsar_consumer_regex_subscription_mode; + /// Callback definition for MessageListener typedef void (*pulsar_message_listener)(pulsar_consumer_t *consumer, pulsar_message_t *msg, void *ctx); @@ -310,6 +320,14 @@ PULSAR_PUBLIC void pulsar_consumer_configuration_set_batch_index_ack_enabled( PULSAR_PUBLIC int pulsar_consumer_configuration_is_batch_index_ack_enabled( pulsar_consumer_configuration_t *consumer_configuration); +PULSAR_PUBLIC void pulsar_consumer_configuration_set_regex_subscription_mode( +pulsar_consumer_configuration_t *consumer_configuration, +pulsar_consumer_regex_subscription_mode regex_sub_mode); + +PULSAR_PUBLIC pulsar_consumer_regex_subscription_mode +pulsar_consumer_configuration_get_regex_subscription_mode( +pulsar_consumer_configuration_t *consumer_configuration); + // const CryptoKeyReaderPtr getCryptoKeyReader() // // const; diff --git a/lib/c/c_ConsumerConfiguration.cc b/lib/c/c_ConsumerConfiguration.cc index 8a03d3d..9cc3f20 100644 --- a/lib/c/c_ConsumerConfiguration.cc +++ b/lib/c/c_ConsumerConfiguration.cc @@ -237,3 +237,16 @@ int pulsar_consumer_configuration_is_batch_index_ack_enabled( pulsar_consumer_configuration_t *consumer_configuration) { return consumer_configuration->consumerConfiguration.isBatchIndexAckEnabled(); } + +void pulsar_consumer_configuration_set_regex_subscription_mode( +pulsar_consumer_configuration_t *consumer_configuration, +pulsar_consumer_regex_subscription_mode regex_sub_mode) { +consumer_configuration->consumerConfiguration.setRegexSubscriptionMode( +(pulsar::RegexSubscriptionMode)regex_sub_mode); +} + +pulsar_consumer_regex_subscription_mode pulsar_consumer_configuration_get_regex_subscription_mode( +pulsar_consumer_configuration_t *consumer_configuration) { +return (pulsar_consumer_regex_subscription_mode) + consumer_configuration->consumerConfiguration.getRegexSubscriptionMode(); +} diff --git a/tests/c/c_ConsumerConfigurationTest.cc b/tests/c/c_ConsumerConfigurationTest.cc index 03204cc..3984e6d 100644 --- a/tests/c/c_ConsumerConfigurationTest.cc +++ b/tests/c/c_ConsumerConfigurationTest.cc @@ -37,4 +37,9 @@ TEST(C_ConsumerConfigurationTest, testCApiConfig) { pulsar_consumer_configuration_set_batch_index_ack_enabled(consumer_conf, 1); ASSERT_EQ(pulsar_consumer_configuration_is_batch_index_ack_enabled(consumer_conf), 1); + +pulsar_consumer_configuration_set_regex_subscription_mode( +consumer_conf, pulsar_consumer_regex_sub_mode_NonPersistentOnly); + ASSERT_EQ(pulsar_consumer_configuration_get_regex_subscription_mode(consumer_conf), + pulsar_consumer_regex_sub_mode_NonPersistentOnly); }
[GitHub] [pulsar-client-cpp] shibd merged pull request #247: [feat] Support set consumer regex subscription mode for C client.
shibd merged PR #247: URL: https://github.com/apache/pulsar-client-cpp/pull/247 -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-go] frankjkelly opened a new issue, #1010: Seeing high pulsar_client_consumer_processing_time_seconds_bucket values
frankjkelly opened a new issue, #1010: URL: https://github.com/apache/pulsar-client-go/issues/1010 Expected behavior Query we are running is ``` histogram_quantile(0.99, sum(rate(pulsar_client_consumer_processing_time_seconds_bucket{x,pulsar_namespace=~'yy', pod=~'zz'}[2m])) by (le, pulsar_tenant, pulsar_namespace)) ``` Actual behavior See ![image](https://user-images.githubusercontent.com/62910985/232056862-c660b878-369f-4eeb-b893-1f22d360.png) So far all our inspections suggest there are no delays but looking for assistance in ways to confirm that. In other environments we do not see that ![image](https://user-images.githubusercontent.com/62910985/232057996-4e4cbd2c-4e47-4603-9215-b080ea207bac.png) Pod CPU usage is below requests CPU (and pod CPU limits are > requests) Steps to reproduce Sorry have no repro steps - just looking for ideas / help or at least confirmation that the metric is working appropriately or that we are graphing it appropriately. System configuration **Pulsar version**: 2.10.3 Client Version - `0.10.0` -- 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-unsubscr...@pulsar.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] tiny-rain commented on issue #20105: [Bug] ZKMetadataStore runs into deadlock
tiny-rain commented on issue #20105: URL: https://github.com/apache/pulsar/issues/20105#issuecomment-1508391757 `Java stack information for the threads listed above: === "metadata-store-40-1": at org.apache.pulsar.metadata.impl.ZKSessionWatcher.process(ZKSessionWatcher.java:120) - waiting to lock <0x00070096de18> (a org.apache.pulsar.metadata.impl.ZKSessionWatcher) at org.apache.pulsar.metadata.impl.ZKMetadataStore.lambda$new$0(ZKMetadataStore.java:101) at org.apache.pulsar.metadata.impl.ZKMetadataStore$$Lambda$818/0x000801684680.run(Unknown Source) at java.util.concurrent.Executors$RunnableAdapter.call(java.base@17.0.6/Executors.java:539) at java.util.concurrent.FutureTask.run$$$capture(java.base@17.0.6/FutureTask.java:264) at java.util.concurrent.FutureTask.run(java.base@17.0.6/FutureTask.java) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(java.base@17.0.6/ScheduledThreadPoolExecutor.java:304) at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.6/ThreadPoolExecutor.java:1136) at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.6/ThreadPoolExecutor.java:635) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(java.base@17.0.6/Thread.java:833) "metadata-store-zk-session-watcher-41-1": at org.apache.zookeeper.ClientCnxn$EventThread.queuePacket(ClientCnxn.java:527) - waiting to lock <0x000706564568> (a java.util.concurrent.LinkedBlockingQueue) at org.apache.zookeeper.ClientCnxn.finishPacket(ClientCnxn.java:771) at org.apache.zookeeper.ClientCnxn.conLossPacket(ClientCnxn.java:808) at org.apache.zookeeper.ClientCnxn.queuePacket(ClientCnxn.java:1676) - locked <0x000700d27530> (a org.apache.zookeeper.ZooKeeper$States) at org.apache.zookeeper.ClientCnxn.queuePacket(ClientCnxn.java:1645) at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1919) at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1930) at org.apache.pulsar.metadata.impl.PulsarZooKeeperClient$16.zkRun(PulsarZooKeeperClient.java:926) at org.apache.pulsar.metadata.impl.PulsarZooKeeperClient$ZkRetryRunnable.run(PulsarZooKeeperClient.java:390) at org.apache.pulsar.metadata.impl.PulsarZooKeeperClient.exists(PulsarZooKeeperClient.java:936) at org.apache.pulsar.metadata.impl.ZKSessionWatcher.checkConnectionStatus(ZKSessionWatcher.java:86) - locked <0x00070096de18> (a org.apache.pulsar.metadata.impl.ZKSessionWatcher) at org.apache.pulsar.metadata.impl.ZKSessionWatcher$$Lambda$328/0x0008013d3470.run(Unknown Source) at org.apache.pulsar.common.util.Runnables$CatchingAndLoggingRunnable.run(Runnables.java:54) at java.util.concurrent.Executors$RunnableAdapter.call(java.base@17.0.6/Executors.java:539) at java.util.concurrent.FutureTask.runAndReset$$$capture(java.base@17.0.6/FutureTask.java:305) at java.util.concurrent.FutureTask.runAndReset(java.base@17.0.6/FutureTask.java) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(java.base@17.0.6/ScheduledThreadPoolExecutor.java:305) at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.6/ThreadPoolExecutor.java:1136) at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.6/ThreadPoolExecutor.java:635) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(java.base@17.0.6/Thread.java:833) "ZKC-connect-executor-0-SendThread(localhost:2181)": at org.apache.pulsar.metadata.impl.ZKSessionWatcher.setSessionInvalid(ZKSessionWatcher.java:125) - waiting to lock <0x00070096de18> (a org.apache.pulsar.metadata.impl.ZKSessionWatcher) at org.apache.pulsar.metadata.impl.ZKMetadataStore$$Lambda$823/0x0008016866c8.accept(Unknown Source) at java.util.Optional.ifPresent(java.base@17.0.6/Optional.java:178) at org.apache.pulsar.metadata.impl.ZKMetadataStore.lambda$receivedSessionEvent$3(ZKMetadataStore.java:146) at org.apache.pulsar.metadata.impl.ZKMetadataStore$$Lambda$821/0x000801685dd8.processResult(Unknown Source) at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:726) at org.apache.zookeeper.ClientCnxn$EventThread.queuePacket(ClientCnxn.java:531) - locked <0x000706564568> (a java.util.concurrent.LinkedBlockingQueue) at org.apache.zookeeper.ClientCnxn.finishPacket(ClientCnxn.java:771) at
[GitHub] [pulsar] tiny-rain opened a new issue, #20105: [Bug] ZKMetadataStore runs into deadlock
tiny-rain opened a new issue, #20105: URL: https://github.com/apache/pulsar/issues/20105 ### Search before asking - [X] I searched in the [issues](https://github.com/apache/pulsar/issues) and found nothing similar. ### Version Pulsar version: 2.11 OS: MacOs Monterey ### Minimal reproduce step 1. make zk connection lost of zkc in ZKMetadataStore 2. wait connection check thread in ZkSessionWather begin to run. ### What did you expect to see? - **thread1:** In the session watch callback of ZKMetadataStore, it will firstly lock the pending request queue in ClientCnxn class,and then call zkSessionWather.process, which need acquire lock of zkSessionWatcher. - **Thread2:** While the schedule connection check thread in ZkSessionWather begin running, execute zookeeper.exists in ZkSessionWather.checkConnectionStatus(), in this way, the lock of zkSessionWatcher is hold by connectionStatusCheck thread, and waiting lock of pendingrequest queue in ClientCnxn, which was already holed by the session wather callback thread. Risk: all the metadata request are blocked. ### What did you see instead? Java stack information for the threads listed above: === "metadata-store-40-1": at org.apache.pulsar.metadata.impl.ZKSessionWatcher.process(ZKSessionWatcher.java:120) - waiting to lock <0x00070096de18> (a org.apache.pulsar.metadata.impl.ZKSessionWatcher) at org.apache.pulsar.metadata.impl.ZKMetadataStore.lambda$new$0(ZKMetadataStore.java:101) at org.apache.pulsar.metadata.impl.ZKMetadataStore$$Lambda$818/0x000801684680.run(Unknown Source) at java.util.concurrent.Executors$RunnableAdapter.call(java.base@17.0.6/Executors.java:539) at java.util.concurrent.FutureTask.run$$$capture(java.base@17.0.6/FutureTask.java:264) at java.util.concurrent.FutureTask.run(java.base@17.0.6/FutureTask.java) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(java.base@17.0.6/ScheduledThreadPoolExecutor.java:304) at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.6/ThreadPoolExecutor.java:1136) at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.6/ThreadPoolExecutor.java:635) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(java.base@17.0.6/Thread.java:833) "metadata-store-zk-session-watcher-41-1": at org.apache.zookeeper.ClientCnxn$EventThread.queuePacket(ClientCnxn.java:527) - waiting to lock <0x000706564568> (a java.util.concurrent.LinkedBlockingQueue) at org.apache.zookeeper.ClientCnxn.finishPacket(ClientCnxn.java:771) at org.apache.zookeeper.ClientCnxn.conLossPacket(ClientCnxn.java:808) at org.apache.zookeeper.ClientCnxn.queuePacket(ClientCnxn.java:1676) - locked <0x000700d27530> (a org.apache.zookeeper.ZooKeeper$States) at org.apache.zookeeper.ClientCnxn.queuePacket(ClientCnxn.java:1645) at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1919) at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1930) at org.apache.pulsar.metadata.impl.PulsarZooKeeperClient$16.zkRun(PulsarZooKeeperClient.java:926) at org.apache.pulsar.metadata.impl.PulsarZooKeeperClient$ZkRetryRunnable.run(PulsarZooKeeperClient.java:390) at org.apache.pulsar.metadata.impl.PulsarZooKeeperClient.exists(PulsarZooKeeperClient.java:936) at org.apache.pulsar.metadata.impl.ZKSessionWatcher.checkConnectionStatus(ZKSessionWatcher.java:86) - locked <0x00070096de18> (a org.apache.pulsar.metadata.impl.ZKSessionWatcher) at org.apache.pulsar.metadata.impl.ZKSessionWatcher$$Lambda$328/0x0008013d3470.run(Unknown Source) at org.apache.pulsar.common.util.Runnables$CatchingAndLoggingRunnable.run(Runnables.java:54) at java.util.concurrent.Executors$RunnableAdapter.call(java.base@17.0.6/Executors.java:539) at java.util.concurrent.FutureTask.runAndReset$$$capture(java.base@17.0.6/FutureTask.java:305) at java.util.concurrent.FutureTask.runAndReset(java.base@17.0.6/FutureTask.java) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(java.base@17.0.6/ScheduledThreadPoolExecutor.java:305) at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.6/ThreadPoolExecutor.java:1136) at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.6/ThreadPoolExecutor.java:635) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(java.base@17.0.6/Thread.java:833)
[GitHub] [pulsar] BewareMyPower commented on a diff in pull request #20096: [improve][broker] Harden non-null checker
BewareMyPower commented on code in PR #20096: URL: https://github.com/apache/pulsar/pull/20096#discussion_r1166737860 ## managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java: ## @@ -3066,34 +3068,38 @@ boolean shouldCloseLedger(LedgerHandle lh) { } } -void switchToNewLedger(final LedgerHandle lh, final VoidCallback callback) { +void switchToNewLedger(@Nonnull LedgerHandle lh, VoidCallback callback) { +requireNonNull(lh, "LedgerHandle should not be null"); + if (log.isDebugEnabled()) { log.debug("[{}] Switching cursor {} to ledger {}", ledger.getName(), name, lh.getId()); } + persistPositionMetaStore(lh.getId(), lastMarkDeleteEntry.newPosition, lastMarkDeleteEntry.properties, -new MetaStoreCallback() { Review Comment: Changes here are not necessary. Currently there is no strong code indent rule in the Java code. Please revert these changes. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-cpp] BewareMyPower commented on pull request #249: Support the base64 encoded credentials for OAuth2 authentication
BewareMyPower commented on PR #249: URL: https://github.com/apache/pulsar-client-cpp/pull/249#issuecomment-1508382123 @shibd Thanks for your suggestions. I'm working on simplifying all test scripts into the `run-unit-tests.sh` currently. It would also support configuring `CMAKE_BUILD_DIRECTORY` if the cmake build directory is not the project root directory. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-cpp] BewareMyPower commented on a diff in pull request #249: Support the base64 encoded credentials for OAuth2 authentication
BewareMyPower commented on code in PR #249: URL: https://github.com/apache/pulsar-client-cpp/pull/249#discussion_r1166706278 ## .github/workflows/ci-pr-validation.yaml: ## @@ -93,6 +93,14 @@ jobs: - name: Build run: make -j8 + - name: Run OAuth2 tests +run: | + docker compose -f tests/oauth2/docker-compose.yml up -d Review Comment: > run_test.sh I also thought of this idea just now. I will add the script in this 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] codecov-commenter commented on pull request #20086: [fix][broker] Ensure previous delayed index be removed from snapshotSegmentLastIndexTable & Make load operate asynchronous
codecov-commenter commented on PR #20086: URL: https://github.com/apache/pulsar/pull/20086#issuecomment-1508339284 ## [Codecov](https://codecov.io/gh/apache/pulsar/pull/20086?src=pr=h1_medium=referral_source=github_content=comment_campaign=pr+comments_term=The+Apache+Software+Foundation) Report > Merging [#20086](https://codecov.io/gh/apache/pulsar/pull/20086?src=pr=desc_medium=referral_source=github_content=comment_campaign=pr+comments_term=The+Apache+Software+Foundation) (51f2770) into [master](https://codecov.io/gh/apache/pulsar/commit/a332fead21390b3fbbb86c2d17a161717a170161?el=desc_medium=referral_source=github_content=comment_campaign=pr+comments_term=The+Apache+Software+Foundation) (a332fea) will **increase** coverage by `37.35%`. > The diff coverage is `90.47%`. [![Impacted file tree graph](https://codecov.io/gh/apache/pulsar/pull/20086/graphs/tree.svg?width=650=150=pr=acYqCpsK9J_medium=referral_source=github_content=comment_campaign=pr+comments_term=The+Apache+Software+Foundation)](https://codecov.io/gh/apache/pulsar/pull/20086?src=pr=tree_medium=referral_source=github_content=comment_campaign=pr+comments_term=The+Apache+Software+Foundation) ```diff @@ Coverage Diff @@ ## master #20086 +/- ## = + Coverage 35.58% 72.94% +37.35% - Complexity1242331904+19481 = Files 1691 1868 +177 Lines128771 138302 +9531 Branches 1404415215 +1171 = + Hits 45822 100880+55058 + Misses7693129396-47535 - Partials 6018 8026 +2008 ``` | Flag | Coverage Δ | | |---|---|---| | inttests | `24.14% <2.38%> (?)` | | | systests | `24.91% <2.38%> (+0.01%)` | :arrow_up: | | unittests | `72.24% <90.47%> (+39.09%)` | :arrow_up: | Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral_source=github_content=comment_campaign=pr+comments_term=The+Apache+Software+Foundation#carryforward-flags-in-the-pull-request-comment) to find out more. | [Impacted Files](https://codecov.io/gh/apache/pulsar/pull/20086?src=pr=tree_medium=referral_source=github_content=comment_campaign=pr+comments_term=The+Apache+Software+Foundation) | Coverage Δ | | |---|---|---| | [...r/delayed/bucket/BucketDelayedDeliveryTracker.java](https://codecov.io/gh/apache/pulsar/pull/20086?src=pr=tree_medium=referral_source=github_content=comment_campaign=pr+comments_term=The+Apache+Software+Foundation#diff-cHVsc2FyLWJyb2tlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvcHVsc2FyL2Jyb2tlci9kZWxheWVkL2J1Y2tldC9CdWNrZXREZWxheWVkRGVsaXZlcnlUcmFja2VyLmphdmE=) | `84.59% <89.74%> (+84.59%)` | :arrow_up: | | [.../pulsar/broker/rest/RestMessagePublishContext.java](https://codecov.io/gh/apache/pulsar/pull/20086?src=pr=tree_medium=referral_source=github_content=comment_campaign=pr+comments_term=The+Apache+Software+Foundation#diff-cHVsc2FyLWJyb2tlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvcHVsc2FyL2Jyb2tlci9yZXN0L1Jlc3RNZXNzYWdlUHVibGlzaENvbnRleHQuamF2YQ==) | `92.59% <100.00%> (+92.59%)` | :arrow_up: | | [...sistent/PersistentDispatcherMultipleConsumers.java](https://codecov.io/gh/apache/pulsar/pull/20086?src=pr=tree_medium=referral_source=github_content=comment_campaign=pr+comments_term=The+Apache+Software+Foundation#diff-cHVsc2FyLWJyb2tlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvcHVsc2FyL2Jyb2tlci9zZXJ2aWNlL3BlcnNpc3RlbnQvUGVyc2lzdGVudERpc3BhdGNoZXJNdWx0aXBsZUNvbnN1bWVycy5qYXZh) | `76.79% <100.00%> (+24.39%)` | :arrow_up: | | [...a/org/apache/pulsar/admin/cli/PulsarAdminTool.java](https://codecov.io/gh/apache/pulsar/pull/20086?src=pr=tree_medium=referral_source=github_content=comment_campaign=pr+comments_term=The+Apache+Software+Foundation#diff-cHVsc2FyLWNsaWVudC10b29scy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvcHVsc2FyL2FkbWluL2NsaS9QdWxzYXJBZG1pblRvb2wuamF2YQ==) | `86.77% <100.00%> (+86.77%)` | :arrow_up: | ... and [1438 files with indirect coverage changes](https://codecov.io/gh/apache/pulsar/pull/20086/indirect-changes?src=pr=tree-more_medium=referral_source=github_content=comment_campaign=pr+comments_term=The+Apache+Software+Foundation) -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] tisonkun commented on issue #20092: [Bug] Pulsar client AUTO_CONSUME "double" as "BigDecimal" in JSON schemas
tisonkun commented on issue #20092: URL: https://github.com/apache/pulsar/issues/20092#issuecomment-1508322846 I create a patch to fix your use case https://github.com/apache/pulsar/pull/20104. You can give it a try and help in review. I don't know if it affects other use case but if it's good to go, I can add your test case :) Thanks for your reporting again especially the reproduce steps. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] tisonkun opened a new pull request, #20104: [fix][schema] Apply Schema for GenericJsonRecord if present
tisonkun opened a new pull request, #20104: URL: https://github.com/apache/pulsar/pull/20104 This closes https://github.com/apache/pulsar/issues/20092. ### Motivation See https://github.com/apache/pulsar/issues/20092 ### Modifications Add `jackson-dataformat-avro` and convert JSONNode with AvroSchema if configured ### Verifying this change - [ ] Make sure that the change passes the CI checks. *(Please pick either of the following options)* This change is a trivial rework / code cleanup without any test coverage. *(or)* This change is already covered by existing tests, such as *(please describe tests)*. *(or)* This change added tests and can be verified as follows: *(example:)* - *Added integration tests for end-to-end deployment with large payloads (10MB)* - *Extended integration test for recovery after broker failure* ### Does this pull request potentially affect one of the following parts: *If the box was checked, please highlight the changes* - [x] Dependencies (add or upgrade a dependency) - [ ] The public API - [ ] The schema - [ ] The default values of configurations - [ ] The threading model - [ ] The binary protocol - [ ] The REST endpoints - [ ] The admin CLI options - [ ] The metrics - [ ] Anything that affects deployment ### Documentation - [ ] `doc` - [ ] `doc-required` - [x] `doc-not-needed` - [ ] `doc-complete` ### Matching PR in forked repository PR in forked repository: -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-cpp] BewareMyPower commented on a diff in pull request #249: Support the base64 encoded credentials for OAuth2 authentication
BewareMyPower commented on code in PR #249: URL: https://github.com/apache/pulsar-client-cpp/pull/249#discussion_r1166679474 ## .github/workflows/ci-pr-validation.yaml: ## @@ -93,6 +93,14 @@ jobs: - name: Build run: make -j8 + - name: Run OAuth2 tests +run: | + docker compose -f tests/oauth2/docker-compose.yml up -d Review Comment: > this is too unfriendly to other developers. I agree. So I think we should add the documents for it. Actualy the scripts under the `build-support/` directory are already not friendly. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-cpp] shibd commented on a diff in pull request #249: Support the base64 encoded credentials for OAuth2 authentication
shibd commented on code in PR #249: URL: https://github.com/apache/pulsar-client-cpp/pull/249#discussion_r117184 ## .github/workflows/ci-pr-validation.yaml: ## @@ -93,6 +93,14 @@ jobs: - name: Build run: make -j8 + - name: Run OAuth2 tests +run: | + docker compose -f tests/oauth2/docker-compose.yml up -d Review Comment: > So we have to set up 3 standalones with different ports now. Ideally, we should not keep so many clusters running at the same time. Make sense to me. But, I'm worried that this is too unfriendly to other developers. Maybe we should add scripts to run all unit tests in the future: run_test.sh ``` 1. /pulsar-test-service-start.sh 2. Run common tests. 3. ./pulsar-test-service-stop.sh 4. start-mim-test-broker.sh 5. Run `HostNameValidation` relate test 6. stop-mim-test-broker.sh 7. start-oauth2-broker.sh 8. run oauth2 relate test 9. stop-mim-test-broker.sh 10. Run other special tests ``` I wouldn't block this 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-cpp] BewareMyPower commented on a diff in pull request #249: Support the base64 encoded credentials for OAuth2 authentication
BewareMyPower commented on code in PR #249: URL: https://github.com/apache/pulsar-client-cpp/pull/249#discussion_r1166655369 ## .github/workflows/ci-pr-validation.yaml: ## @@ -93,6 +93,14 @@ jobs: - name: Build run: make -j8 + - name: Run OAuth2 tests +run: | + docker compose -f tests/oauth2/docker-compose.yml up -d Review Comment: I don't think so. Because the set up phase has conflict with the default standalone (the JWT authn provider cannot support multiple public keys), so we have to set up another cluster or standalone for tests. So we have to set up 3 standalones with different ports now. Ideally, we should not keep so many clusters running at the same time. Currently, the `pulsar-tests` binary is already too huge (80+ MB). Each time a new file is added, the link time will increase. It's also better to split the whole binary into multiple binaries. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-cpp] BewareMyPower commented on a diff in pull request #249: Support the base64 encoded credentials for OAuth2 authentication
BewareMyPower commented on code in PR #249: URL: https://github.com/apache/pulsar-client-cpp/pull/249#discussion_r111330 ## .github/workflows/ci-pr-validation.yaml: ## @@ -93,6 +93,14 @@ jobs: - name: Build run: make -j8 + - name: Run OAuth2 tests +run: | + docker compose -f tests/oauth2/docker-compose.yml up -d Review Comment: Actually I'd like to separate the 2nd standalone into another `docker-compose.yml` like this PR. The 2nd standalone is added in https://github.com/apache/pulsar-client-cpp/pull/126, and it took much more time to run `pulsar-test-service-start.sh` so I pushed this PR for it: https://github.com/apache/pulsar-client-cpp/pull/236 In future, if we need to test standalone or cluster with different configs, setting up all these services in the same script is unnecessary. For example, we have no tests for geo-replication now. But setting up a Pulsar instance for multiple clusters is redundant for most of other tests. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-cpp] BewareMyPower commented on a diff in pull request #249: Support the base64 encoded credentials for OAuth2 authentication
BewareMyPower commented on code in PR #249: URL: https://github.com/apache/pulsar-client-cpp/pull/249#discussion_r1166655369 ## .github/workflows/ci-pr-validation.yaml: ## @@ -93,6 +93,14 @@ jobs: - name: Build run: make -j8 + - name: Run OAuth2 tests +run: | + docker compose -f tests/oauth2/docker-compose.yml up -d Review Comment: I don't think so. Because the set up phase has conflict with the default standalone (the JWT authn provider cannot support multiple public keys), so we have to set up another cluster or standalone for tests. So we have to set up 3 standalones with different ports now. Ideally, we should not keep so many clusters running at the same time. Currently, the `pulsar-tests` binary is already too huge. Each time a new file is added, the link time will increase. It's also better to split the whole binary into multiple binaries. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-cpp] shibd commented on pull request #249: Support the base64 encoded credentials for OAuth2 authentication
shibd commented on PR #249: URL: https://github.com/apache/pulsar-client-cpp/pull/249#issuecomment-1508283008 > @shibd You're right. I think we need to support this format. It seems simple, can you include it in this 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-cpp] shibd commented on a diff in pull request #249: Support the base64 encoded credentials for OAuth2 authentication
shibd commented on code in PR #249: URL: https://github.com/apache/pulsar-client-cpp/pull/249#discussion_r1166643609 ## .github/workflows/ci-pr-validation.yaml: ## @@ -93,6 +93,14 @@ jobs: - name: Build run: make -j8 + - name: Run OAuth2 tests +run: | + docker compose -f tests/oauth2/docker-compose.yml up -d Review Comment: It's better to keep it consistent with how originally run unit tests. 1. Run `Oauth2` standalone broker on `pulsar-test-service-start.sh`. 2. No additional link `Oauth2Test.cc` is necessary. This provides the following benefits 1. Developers can run all tests via `pulsar-test-service-start.sh` scripts. 2. It is not necessary to add this step separately to the CI: `Run OAuth2 tests` 3. In the future, if there are other related tests of Oauth2, this broker can be reused. ## tests/oauth2/docker-compose.yml: ## @@ -0,0 +1,46 @@ +# Review Comment: We can move this file to `tests-conf`. ## tests/oauth2/Oauth2Test.cc: ## @@ -0,0 +1,87 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +// Run `docker-compose up -d` to set up the test environment for this test. +#include +#include + +#include +#include +#include + +#include "lib/Base64Utils.h" + +using namespace pulsar; + +static const std::string clientId = "Xd23RHsUnvUlP7wchjNYOaIfazgeHd9x"; +static const std::string clientSecret = "rT7ps7WY8uhdVuBTKWZkttwLdQotmdEliaM5rLfmgNibvqziZ-g07ZH52N_poGAb"; +static const std::string credentialJson = R"({ + "client_id":")" + clientId + R"(", + "client_secret":")" + clientSecret + + R"(" +})"; +static const std::string base64Credentials = base64::encode(credentialJson); +static const std::string keyPath = std::tmpnam(nullptr); +static ParamMap commonParams; + +static Result testCreateProducer(const std::string& privateKey); + +TEST(Oauth2Test, testBase64Key) { +ASSERT_EQ(ResultOk, testCreateProducer("data:application/json;base64," + base64Credentials)); +std::string wrongCredentialsJson = R"({"client_id":"test-id","client_secret":"test-secret"})"; +ASSERT_EQ(ResultAuthenticationError, + testCreateProducer("data:application/json;base64," + base64::encode(wrongCredentialsJson))); +} + +TEST(Oauth2Test, testFileKey) { +ASSERT_EQ(ResultOk, testCreateProducer("file://" + keyPath)); +ASSERT_EQ(ResultOk, testCreateProducer(keyPath)); +ASSERT_EQ(ResultAuthenticationError, testCreateProducer("file:///tmp/file-not-exist")); +} + +TEST(Oauth2Test, testWrongUrl) { +ASSERT_EQ(ResultAuthenticationError, testCreateProducer("data:text/plain;base64," + base64Credentials)); +ASSERT_EQ(ResultAuthenticationError, + testCreateProducer("data:application/json;text," + base64Credentials)); +ASSERT_EQ(ResultAuthenticationError, testCreateProducer("my-protocol:" + keyPath)); +} + +int main(int argc, char* argv[]) { +commonParams["issuer_url"] = "https://dev-kt-aa9ne.us.auth0.com;; +commonParams["audience"] = "https://dev-kt-aa9ne.us.auth0.com/api/v2/;; Review Comment: We can put the file in `tests-conf` ahead of time without running the main function to generate it -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-cpp] BewareMyPower commented on pull request #249: Support the base64 encoded credentials for OAuth2 authentication
BewareMyPower commented on PR #249: URL: https://github.com/apache/pulsar-client-cpp/pull/249#issuecomment-1508280781 @shibd You're right. I think we need to support this format. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] tisonkun commented on issue #20092: [Bug] Pulsar client AUTO_CONSUME "double" as "BigDecimal" in JSON schemas
tisonkun commented on issue #20092: URL: https://github.com/apache/pulsar/issues/20092#issuecomment-1508264901 Basically I don't think it's bad but we should adjust to correct schema using schema info. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] tisonkun commented on issue #20092: [Bug] Pulsar client AUTO_CONSUME "double" as "BigDecimal" in JSON schemas
tisonkun commented on issue #20092: URL: https://github.com/apache/pulsar/issues/20092#issuecomment-1508264050 I think it's this PR change the behavior: https://github.com/apache/pulsar/pull/15687 Note that we now use: ``` ObjectMapperFactory.getMapper().reader().with(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS) ``` ... for deserializing. cc @codelipenghui @shibd -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-cpp] shibd commented on pull request #249: Support the base64 encoded credentials for OAuth2 authentication
shibd commented on PR #249: URL: https://github.com/apache/pulsar-client-cpp/pull/249#issuecomment-1508253560 >Support the following URL representations for private_key: - file:///path/to/key/file - data:application/json;base64, Nothing to do with this PR. Do we support this format? https://user-images.githubusercontent.com/33416836/232011496-dff10ffe-09fc-4c5b-9df9-a61fd64d01a0.png;> -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[pulsar-site] branch main updated: Refine the java client doc (#516)
This is an automated email from the ASF dual-hosted git repository. liuyu pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/pulsar-site.git The following commit(s) were added to refs/heads/main by this push: new c502b839cb8 Refine the java client doc (#516) c502b839cb8 is described below commit c502b839cb8d1db4ade2b483adb95b8663f9166b Author: Zike Yang AuthorDate: Fri Apr 14 17:50:41 2023 +0800 Refine the java client doc (#516) --- docs/client-libraries-java-use.md | 4 ++-- static/reference/2.10.x/client/client-libraries-java.md | 2 +- static/reference/2.6.x/client/client-libraries-java.md | 2 +- static/reference/2.7.x/client/client-libraries-java.md | 2 +- static/reference/2.8.x/client/client-libraries-java.md | 2 +- static/reference/2.9.x/client/client-libraries-java.md | 2 +- versioned_docs/version-2.10.x/client-libraries-java.md | 4 ++-- versioned_docs/version-2.11.x/client-libraries-java.md | 4 ++-- versioned_docs/version-2.2.0/client-libraries-java.md | 4 ++-- versioned_docs/version-2.2.1/client-libraries-java.md | 2 +- versioned_docs/version-2.3.0/client-libraries-java.md | 4 ++-- versioned_docs/version-2.3.1/client-libraries-java.md | 2 +- versioned_docs/version-2.3.2/client-libraries-java.md | 4 ++-- versioned_docs/version-2.4.0/client-libraries-java.md | 2 +- versioned_docs/version-2.4.1/client-libraries-java.md | 2 +- versioned_docs/version-2.4.2/client-libraries-java.md | 2 +- versioned_docs/version-2.5.0/client-libraries-java.md | 2 +- versioned_docs/version-2.5.1/client-libraries-java.md | 2 +- versioned_docs/version-2.5.2/client-libraries-java.md | 2 +- versioned_docs/version-2.6.0/client-libraries-java.md | 2 +- versioned_docs/version-2.6.1/client-libraries-java.md | 2 +- versioned_docs/version-2.6.2/client-libraries-java.md | 2 +- versioned_docs/version-2.6.3/client-libraries-java.md | 2 +- versioned_docs/version-2.6.4/client-libraries-java.md | 2 +- versioned_docs/version-2.7.0/client-libraries-java.md | 4 ++-- versioned_docs/version-2.7.1/client-libraries-java.md | 4 ++-- versioned_docs/version-2.7.2/client-libraries-java.md | 4 ++-- versioned_docs/version-2.7.3/client-libraries-java.md | 4 ++-- versioned_docs/version-2.7.4/client-libraries-java.md | 4 ++-- versioned_docs/version-2.7.5/client-libraries-java.md | 4 ++-- versioned_docs/version-2.8.x/client-libraries-java.md | 4 ++-- versioned_docs/version-2.9.x/client-libraries-java.md | 4 ++-- 32 files changed, 46 insertions(+), 46 deletions(-) diff --git a/docs/client-libraries-java-use.md b/docs/client-libraries-java-use.md index 68543ada706..f4827d02994 100644 --- a/docs/client-libraries-java-use.md +++ b/docs/client-libraries-java-use.md @@ -70,7 +70,7 @@ while (true) { // Do something with the message System.out.println("Message received: " + new String(msg.getData())); - // Acknowledge the message so that it can be deleted by the message broker + // Acknowledge the message consumer.acknowledge(msg); } catch (Exception e) { // Message failed to process, redeliver later @@ -79,7 +79,7 @@ while (true) { } ``` -If you don't want to block your main thread and rather listen constantly for new messages, consider using a `MessageListener`. +If you don't want to block your main thread but constantly listen for new messages, consider using a `MessageListener`. The `MessageListener` uses a thread pool inside the client. You can set the number of threads for message listeners in the ClientBuilder. The `MessageListener` will use a thread pool inside the PulsarClient. You can set the number of threads to use for message listeners in the ClientBuilder. ```java MessageListener myMessageListener = (consumer, msg) -> { diff --git a/static/reference/2.10.x/client/client-libraries-java.md b/static/reference/2.10.x/client/client-libraries-java.md index 4da544929d0..3f6ddeddb7c 100644 --- a/static/reference/2.10.x/client/client-libraries-java.md +++ b/static/reference/2.10.x/client/client-libraries-java.md @@ -324,7 +324,7 @@ while (true) { // Do something with the message System.out.println("Message received: " + new String(msg.getData())); - // Acknowledge the message so that it can be deleted by the message broker + // Acknowledge the message consumer.acknowledge(msg); } catch (Exception e) { // Message failed to process, redeliver later diff --git a/static/reference/2.6.x/client/client-libraries-java.md b/static/reference/2.6.x/client/client-libraries-java.md index 08d62c760d5..d332c7f0584 100644 --- a/static/reference/2.6.x/client/client-libraries-java.md +++ b/static/reference/2.6.x/client/client-libraries-java.md @@ -280,7 +280,7 @@ while (true) { // Do something with the message System.out.printf("Message received: %s", new String(msg.getData())); - // Acknowledge the
[GitHub] [pulsar-site] Anonymitaet merged pull request #516: Refine the java client doc
Anonymitaet merged PR #516: URL: https://github.com/apache/pulsar-site/pull/516 -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[pulsar-site] branch main updated: [Doc] Add C++ doc for client and producer (#515)
This is an automated email from the ASF dual-hosted git repository. liuyu pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/pulsar-site.git The following commit(s) were added to refs/heads/main by this push: new a7cd17d7152 [Doc] Add C++ doc for client and producer (#515) a7cd17d7152 is described below commit a7cd17d7152e28d9ee7c502eef2d6f9c29c342ba Author: Zike Yang AuthorDate: Fri Apr 14 17:50:16 2023 +0800 [Doc] Add C++ doc for client and producer (#515) --- docs/client-libraries-clients.md | 12 +- docs/client-libraries-producers.md | 230 ++--- 2 files changed, 197 insertions(+), 45 deletions(-) diff --git a/docs/client-libraries-clients.md b/docs/client-libraries-clients.md index 7bdda1d5952..cb75b6ed58e 100644 --- a/docs/client-libraries-clients.md +++ b/docs/client-libraries-clients.md @@ -21,7 +21,7 @@ The following example creates a Python client using multiple advertised listener mdx-code-block + values={[{"label":"Java","value":"Java"},{"label":"C++","value":"C++"},{"label":"Python","value":"Python"}]}> ```java @@ -31,6 +31,16 @@ The following example creates a Python client using multiple advertised listener .build(); ``` + + + + ```cpp + PulsarClient client = PulsarClient.builder() +.serviceUrl("pulsar://:6650") +.listenerName("external") +.build(); + ``` + diff --git a/docs/client-libraries-producers.md b/docs/client-libraries-producers.md index 33af11c34f1..8a4aaa69181 100644 --- a/docs/client-libraries-producers.md +++ b/docs/client-libraries-producers.md @@ -18,7 +18,7 @@ This example shows how to create a producer. mdx-code-block + values={[{"label":"Java","value":"Java"},{"label":"C++","value":"C++"}]}> @@ -29,6 +29,15 @@ Producer producer = pulsarClient.newProducer(Schema.STRING) ``` + + + + ```cpp + Producer producer; + Result result = client.createProducer("my-topic", producer); + ``` + + @@ -39,21 +48,32 @@ This example shows how to send messages using producers. mdx-code-block + values={[{"label":"Java","value":"Java"},{"label":"C++","value":"C++"},{"label":"Go","value":"Go"},{"label":"Node.js","value":"Node.js"},{"label":"C#","value":"C#"}]}> ```java producer.newMessage() .key("my-message-key") - .value("my-async-message") - .property("my-key", "my-value") - .property("my-other-key", "my-other-value") + .value("my-sync-message") .send(); ``` You can terminate the builder chain with `sendAsync()` and get a future return. + + + + ```cpp + Message msg = MessageBuilder() + .setContent("content") + .setPartitionKey("my-message-key") + .build(); + Result res = producer.send(msg); + ``` + + + ```go @@ -165,7 +185,33 @@ await producer.Send(data); mdx-code-block + values={[{"label":"Java","value":"Java"},{"label":"C++","value":"C++"},{"label":"C#","value":"C#"}]}> + + + +```java +producer.newMessage() +.value("my-sync-message") +.property("my-key", "my-value") +.property("my-other-key", "my-other-value") +.send(); +``` + + + + + +```cpp +Message msg = MessageBuilder() + .setContent("content") + .setProperty("my-key", "my-value") + .setProperty("my-other-key", "my-other-value") + .build(); +Result res = producer.send(msg); +``` + + + ```csharp @@ -178,25 +224,6 @@ await producer.Send(data); -- Send messages with customized metadata without using the builder. - - mdx-code-block - - - - ```csharp - var data = Encoding.UTF8.GetBytes("Hello World"); - var metadata = new MessageMetadata(); - metadata["SomeKey"] = "SomeValue"; - var messageId = await producer.Send(metadata, data)); - ``` - - - - - ## Async send messages You can publish messages [asynchronously](concepts-clients.md#send-modes) using the Java client. With async send, the producer puts the message in a blocking queue and returns it immediately. Then the client library sends the message to the broker in the background. If the queue is full (max size configurable), the producer is blocked or fails immediately when calling the API, depending on arguments passed to the producer. @@ -206,7 +233,7 @@ The following is an example. mdx-code-block + values={[{"label":"Java","value":"Java"},{"label":"C++","value":"C++"}]}> ```java @@ -216,6 +243,20 @@ producer.sendAsync("my-async-message".getBytes()).thenAccept(msgId -> { ``` + + + +```cpp +Message msg = MessageBuilder() + .setContent("content") + .build(); +producer.sendAsync(msg, [](Result result, MessageId messageId) { +std::cout <<
[GitHub] [pulsar-site] Anonymitaet merged pull request #515: [Doc] Add C++ doc for client and producer
Anonymitaet merged PR #515: URL: https://github.com/apache/pulsar-site/pull/515 -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] tisonkun commented on issue #20092: [Bug] Pulsar client AUTO_CONSUME "double" as "BigDecimal" in JSON schemas
tisonkun commented on issue #20092: URL: https://github.com/apache/pulsar/issues/20092#issuecomment-1508233139 Thanks for your report @aymkhalil! Can you try out 2.11.0 and build from source? I cannot reproduce this issue with current master 091ee2504ffbe6ec98e354b76e7f4c045e1914aa. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] yaalsn commented on issue #19609: [Bug] Docker build fails if UBUNTU_MIRROR is not set
yaalsn commented on issue #19609: URL: https://github.com/apache/pulsar/issues/19609#issuecomment-1508232352 https://github.com/apache/pulsar/issues/19098 ``` UBUNTU_MIRROR: http://archive.ubuntu.com/ubuntu/ UBUNTU_SECURITY_MIRROR: http://security.ubuntu.com/ubuntu/ ``` -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-go] tisonkun commented on pull request #910: [improve][ci] change token name to `GITHUB_TOKEN`
tisonkun commented on PR #910: URL: https://github.com/apache/pulsar-client-go/pull/910#issuecomment-1508226156 ``` rerun-failed-jobs for 'CI'. Follow progress at https://github.com/apache/pulsar-client-go/actions/runs/2812684476 { "message": "Unable to retry this workflow run because it was created over a month ago", "documentation_url": "https://docs.github.com/rest/reference/actions#re-run-workflow-failed-jobs; } Failed. ``` https://github.com/apache/pulsar-client-go/actions/runs/4698390864/jobs/8330614311 It seems default token doesn't have enough permission to trigger rerun. Although we can file an INFRA ticket to add one, but IIRC INFRA will reject configure personal access token as we do before - we may be an actual bot account. I'm OK to leave it as is or delete the workflow file since we can actually live well without this functionality. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-node] RobertIndie closed issue #254: Install failed on macos x64 using clang
RobertIndie closed issue #254: Install failed on macos x64 using clang URL: https://github.com/apache/pulsar-client-node/issues/254 -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-node] RobertIndie commented on issue #254: Install failed on macos x64 using clang
RobertIndie commented on issue #254: URL: https://github.com/apache/pulsar-client-node/issues/254#issuecomment-1508224410 We could close this issue as 1.8.0 is already released. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-go] tisonkun commented on pull request #823: fix: fix schema error
tisonkun commented on PR #823: URL: https://github.com/apache/pulsar-client-go/pull/823#issuecomment-1508222497 /pulsarbot rerun-failure-checks -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-go] tisonkun closed pull request #1009: DNM - test pulsarbot
tisonkun closed pull request #1009: DNM - test pulsarbot URL: https://github.com/apache/pulsar-client-go/pull/1009 -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-node] tisonkun commented on issue #227: mac m1 install pulsar-client
tisonkun commented on issue #227: URL: https://github.com/apache/pulsar-client-node/issues/227#issuecomment-1508216973 I can install this library (1.8.1) on Mac M1 now. Closing.. Please open a new issue if there is still something not working. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-node] tisonkun closed issue #227: mac m1 install pulsar-client
tisonkun closed issue #227: mac m1 install pulsar-client URL: https://github.com/apache/pulsar-client-node/issues/227 -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-go] tisonkun commented on pull request #1009: DNM - test pulsarbot
tisonkun commented on PR #1009: URL: https://github.com/apache/pulsar-client-go/pull/1009#issuecomment-1508208279 /pulsarbot rerun-failure-checks -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[pulsar-client-go] branch tisonkun-patch-1 created (now 6ee1b2b)
This is an automated email from the ASF dual-hosted git repository. tison pushed a change to branch tisonkun-patch-1 in repository https://gitbox.apache.org/repos/asf/pulsar-client-go.git at 6ee1b2b Update bot.yml No new revisions were added by this update.
[pulsar-client-go] branch master updated: [improve][ci] try to fix bot workflow (#910)
This is an automated email from the ASF dual-hosted git repository. tison pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/pulsar-client-go.git The following commit(s) were added to refs/heads/master by this push: new 55f0c7c [improve][ci] try to fix bot workflow (#910) 55f0c7c is described below commit 55f0c7cfda647b5ed0c19882790e92418b8bd651 Author: labuladong AuthorDate: Fri Apr 14 17:17:37 2023 +0800 [improve][ci] try to fix bot workflow (#910) --- .github/workflows/bot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/bot.yml b/.github/workflows/bot.yml index 343963e..4641eb9 100644 --- a/.github/workflows/bot.yml +++ b/.github/workflows/bot.yml @@ -29,6 +29,6 @@ jobs: - name: Execute pulsarbot command id: pulsarbot env: - GITHUB_TOKEN: ${{ secrets.GO_CLIENT_BOT_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} BOT_TARGET_REPOSITORY: apache/pulsar-client-go uses: apache/pulsar-test-infra/pulsarbot@master
[GitHub] [pulsar-client-go] tisonkun merged pull request #910: [improve][ci] change token name to `GITHUB_TOKEN`
tisonkun merged PR #910: URL: https://github.com/apache/pulsar-client-go/pull/910 -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-go] tisonkun closed issue #909: [CI] pulsar bot not work in this repo due to `GO_CLIENT_BOT_TOKEN` missing
tisonkun closed issue #909: [CI] pulsar bot not work in this repo due to `GO_CLIENT_BOT_TOKEN` missing URL: https://github.com/apache/pulsar-client-go/issues/909 -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-go] tisonkun commented on pull request #910: [improve][ci] change token name to `GITHUB_TOKEN`
tisonkun commented on PR #910: URL: https://github.com/apache/pulsar-client-go/pull/910#issuecomment-1508207104 This change doesn't make the case worse. Let's give it a try. If it still won't work, we can find other approach or just remove the workflow since we actually live well without this functionality always. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-go] tisonkun closed pull request #1009: DNM - test pulsarbot
tisonkun closed pull request #1009: DNM - test pulsarbot URL: https://github.com/apache/pulsar-client-go/pull/1009 -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar-client-go] tisonkun commented on pull request #1009: DNM - test pulsarbot
tisonkun commented on PR #1009: URL: https://github.com/apache/pulsar-client-go/pull/1009#issuecomment-1508204142 /pulsarbot rerun-failure-checks -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[pulsar-client-go] branch tisonkun-patch-1 updated (95b99eb -> 6ee1b2b)
This is an automated email from the ASF dual-hosted git repository. tison pushed a change to branch tisonkun-patch-1 in repository https://gitbox.apache.org/repos/asf/pulsar-client-go.git from 95b99eb DNM - test pulsarbot add 6ee1b2b Update bot.yml No new revisions were added by this update. Summary of changes: .github/workflows/bot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
[pulsar-client-go] branch tisonkun-patch-1 created (now 95b99eb)
This is an automated email from the ASF dual-hosted git repository. tison pushed a change to branch tisonkun-patch-1 in repository https://gitbox.apache.org/repos/asf/pulsar-client-go.git at 95b99eb DNM - test pulsarbot This branch includes the following new commits: new 95b99eb DNM - test pulsarbot The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference.
[GitHub] [pulsar-client-go] tisonkun commented on pull request #1009: DNM - test pulsarbot
tisonkun commented on PR #1009: URL: https://github.com/apache/pulsar-client-go/pull/1009#issuecomment-1508200574 /pulsarbot rerun-failure-checks -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[pulsar-client-go] 01/01: DNM - test pulsarbot
This is an automated email from the ASF dual-hosted git repository. tison pushed a commit to branch tisonkun-patch-1 in repository https://gitbox.apache.org/repos/asf/pulsar-client-go.git commit 95b99ebe9d9b39f03677d62ffd1185398efc687d Author: tison AuthorDate: Fri Apr 14 17:11:53 2023 +0800 DNM - test pulsarbot --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b3e9351..e0fa730 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ # Pulsar-client-go Changelog + All notable changes to this project will be documented in this file. [0.10.0] 2023-03-27
[GitHub] [pulsar] codelipenghui added a comment to the discussion: [question]How many consumers or producers can be created on a pulsar client?
GitHub user codelipenghui added a comment to the discussion: [question]How many consumers or producers can be created on a pulsar client? The issue had no activity for 30 days, mark with Stale label. GitHub link: https://github.com/apache/pulsar/discussions/20103#discussioncomment-5613741 This is an automatically sent email for commits@pulsar.apache.org. To unsubscribe, please send an email to: commits-unsubscr...@pulsar.apache.org
[GitHub] [pulsar] wmccarley added a comment to the discussion: [question]How many consumers or producers can be created on a pulsar client?
GitHub user wmccarley added a comment to the discussion: [question]How many consumers or producers can be created on a pulsar client? In the Java implementation the `PulsarClient` class stores producer and consumer instances in a set backed by a `ConcurrentHashMap` so the count is theoretically unbounded I guess. In practice everything has a limit but it's dependent on your system resources. I have seen a client application open 30K concurrent consumers to one single topic (wasn't by design, it was a poorly coded application.) Neither the client nor the broker actually crashed in that instance. The only ill effects I observed on the broker were the prometheus metrics collection stopping because it had `exposeConsumerLevelMetricsInPrometheus=true` and the broker could not render all the metrics before prometheus scrape timed out. Likewise the client swore up and down that their application was healthy and only agreed to change their code after I showed them the output of the topic stats command showing 1000s of consumer instances. Since connection management/pooling is handled at the `PulsarClient` level there is not a 1-1 correlation between the number of producers/consumers and the number of TCP connections opened up to brokers. Based on my experience I suspect a well-designed application could open hundreds or thousands of producers/consumers and be fine. Since Pulsar Producer and Consumer instances are thread-safe and highly tunable, in general you shouldn't have to create a lot of them to get high performance. Generally speaking you only need to create many instances if you need to interact with many different topics. GitHub link: https://github.com/apache/pulsar/discussions/20103#discussioncomment-5613740 This is an automatically sent email for commits@pulsar.apache.org. To unsubscribe, please send an email to: commits-unsubscr...@pulsar.apache.org
[GitHub] [pulsar] tisonkun closed issue #11227: [question]How many consumers or producers can be created on a pulsar client?
tisonkun closed issue #11227: [question]How many consumers or producers can be created on a pulsar client? URL: https://github.com/apache/pulsar/issues/11227 -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] xuesongxs created a discussion: [question]How many consumers or producers can be created on a pulsar client?
GitHub user xuesongxs created a discussion: [question]How many consumers or producers can be created on a pulsar client? How many consumers or producers can be created on a pulsar client? GitHub link: https://github.com/apache/pulsar/discussions/20103 This is an automatically sent email for commits@pulsar.apache.org. To unsubscribe, please send an email to: commits-unsubscr...@pulsar.apache.org
[GitHub] [pulsar] tisonkun closed issue #10623: function down suddenly
tisonkun closed issue #10623: function down suddenly URL: https://github.com/apache/pulsar/issues/10623 -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] tisonkun commented on issue #10623: function down suddenly
tisonkun commented on issue #10623: URL: https://github.com/apache/pulsar/issues/10623#issuecomment-1508189921 Vague to investigate. Please open a new issue with more details about the repro and symptom if it's still relevant to maintained versions. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] codelipenghui added a comment to the discussion: Develop for Java Client Plusar Statistics
GitHub user codelipenghui added a comment to the discussion: Develop for Java Client Plusar Statistics The issue had no activity for 30 days, mark with Stale label. GitHub link: https://github.com/apache/pulsar/discussions/20102#discussioncomment-5613725 This is an automatically sent email for commits@pulsar.apache.org. To unsubscribe, please send an email to: commits-unsubscr...@pulsar.apache.org
[GitHub] [pulsar] tisonkun closed issue #10519: Develop for Java Client Plusar Statistics
tisonkun closed issue #10519: Develop for Java Client Plusar Statistics URL: https://github.com/apache/pulsar/issues/10519 -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] complone created a discussion: Develop for Java Client Plusar Statistics
GitHub user complone created a discussion: Develop for Java Client Plusar Statistics **Is your feature request related to a problem? Please describe.** A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] **Describe the solution you'd like** I am going to participate in the development of the Java Client Plusar Statistics module. I want to know what is the positioning of the statistical function here, and which indicators of the java client need to be monitored. **Describe alternatives you've considered** A clear and concise description of any alternative solutions or features you've considered. **Additional context** Add any other context or screenshots about the feature request here. https://docs.google.com/spreadsheets/d/1iTzn6QnOpTYK8QQHxXRb6a25nvuTNGPPJDdUQHGBUS4/edit#gid=1784579914 GitHub link: https://github.com/apache/pulsar/discussions/20102 This is an automatically sent email for commits@pulsar.apache.org. To unsubscribe, please send an email to: commits-unsubscr...@pulsar.apache.org
[GitHub] [pulsar] tisonkun closed issue #18158: [Bug] expireTimeOfIncompleteChunkedMessage(1, TimeUnit.MILLISECONDS) has bug
tisonkun closed issue #18158: [Bug] expireTimeOfIncompleteChunkedMessage(1, TimeUnit.MILLISECONDS) has bug URL: https://github.com/apache/pulsar/issues/18158 -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] tisonkun commented on issue #18158: [Bug] expireTimeOfIncompleteChunkedMessage(1, TimeUnit.MILLISECONDS) has bug
tisonkun commented on issue #18158: URL: https://github.com/apache/pulsar/issues/18158#issuecomment-1508186671 Do not how to reproduce. Please open a new issue with well-formatted log and reasoning. -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] Technoboy- commented on a diff in pull request #20085: [improve][build] Upgrade snakeyaml version to 2.0
Technoboy- commented on code in PR #20085: URL: https://github.com/apache/pulsar/pull/20085#discussion_r1166541160 ## src/owasp-dependency-check-suppressions.xml: ## @@ -39,7 +39,7 @@ e80612549feb5c9191c498de628c1aa80693cf0b CVE-2022-1471 Review Comment: Ok -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] prime-minister-of-fun added a comment to the discussion: Debezium Demo Doesn't Work with 2.9.1 and Aurora 5.x
GitHub user prime-minister-of-fun added a comment to the discussion: Debezium Demo Doesn't Work with 2.9.1 and Aurora 5.x Here's the output from running pulsar standalone. I stopped it towards the end: `2022-02-15T20:07:57,250+ [main] INFO org.apache.pulsar.zookeeper.LocalBookkeeperEnsemble - Running 1 bookie(s) and advertised them at 127.0.0.1. 2022-02-15T20:07:57,343+ [main] INFO org.apache.pulsar.zookeeper.LocalBookkeeperEnsemble - Starting ZK server 2022-02-15T20:07:57,443+ [main] INFO org.apache.zookeeper.server.ZooKeeperServer - 2022-02-15T20:07:57,443+ [main] INFO org.apache.zookeeper.server.ZooKeeperServer - __ _ 2022-02-15T20:07:57,444+ [main] INFO org.apache.zookeeper.server.ZooKeeperServer - |___ / | | 2022-02-15T20:07:57,444+ [main] INFO org.apache.zookeeper.server.ZooKeeperServer - / /___ ___ | | __ ______ _ __ ___ _ __ 2022-02-15T20:07:57,444+ [main] INFO org.apache.zookeeper.server.ZooKeeperServer -/ // _ \ / _ \ | |/ / / _ \ / _ \ | '_ \ / _ \ | '__| 2022-02-15T20:07:57,444+ [main] INFO org.apache.zookeeper.server.ZooKeeperServer - / /__ | (_) | | (_) | | < | __/ | __/ | |_) | | __/ | | 2022-02-15T20:07:57,444+ [main] INFO org.apache.zookeeper.server.ZooKeeperServer - /_| \___/ \___/ |_|\_\ \___| \___| | .__/ \___| |_| 2022-02-15T20:07:57,445+ [main] INFO org.apache.zookeeper.server.ZooKeeperServer - | | 2022-02-15T20:07:57,445+ [main] INFO org.apache.zookeeper.server.ZooKeeperServer - |_| 2022-02-15T20:07:57,445+ [main] INFO org.apache.zookeeper.server.ZooKeeperServer - 2022-02-15T20:07:57,447+ [main] INFO org.apache.zookeeper.server.ZooKeeperServer - Server environment:zookeeper.version=3.6.3--6401e4ad2087061bc6b9f80dec2d69f2e3c8660a, built on 04/08/2021 16:35 GMT 2022-02-15T20:07:57,447+ [main] INFO org.apache.zookeeper.server.ZooKeeperServer - Server environment:host.name=pulsar-ftw-0.pulsar-ftw.pipeline.svc.cluster.local 2022-02-15T20:07:57,447+ [main] INFO org.apache.zookeeper.server.ZooKeeperServer - Server environment:java.version=1.8.0_312 2022-02-15T20:07:57,448+ [main] INFO org.apache.zookeeper.server.ZooKeeperServer - Server environment:java.vendor=Private Build 2022-02-15T20:07:57,448+ [main] INFO org.apache.zookeeper.server.ZooKeeperServer - Server environment:java.home=/usr/lib/jvm/java-8-openjdk-amd64/jre 2022-02-15T20:07:57,448+ [main] INFO org.apache.zookeeper.server.ZooKeeperServer - Server environment:java.class.path=/data/apache-pulsar/conf:::/data/apache-pulsar/lib/com.google.guava-failureaccess-1.0.1.jar:/data/apache-pulsar/lib/io.vertx-vertx-bridge-common-3.9.8.jar:/data/apache-pulsar/lib/org.jctools-jctools-core-2.1.2.jar:/data/apache-pulsar/lib/io.netty-netty-codec-socks-4.1.72.Final.jar:/data/apache-pulsar/lib/io.dropwizard.metrics-metrics-graphite-3.2.5.jar:/data/apache-pulsar/lib/org.apache.distributedlog-distributedlog-core-4.14.2.jar:/data/apache-pulsar/lib/com.google.code.gson-gson-2.8.6.jar:/data/apache-pulsar/lib/org.apache.zookeeper-zookeeper-jute-3.6.3.jar:/data/apache-pulsar/lib/jakarta.validation-jakarta.validation-api-2.0.2.jar:/data/apache-pulsar/lib/io.netty-netty-codec-haproxy-4.1.72.Final.jar:/data/apache-pulsar/lib/commons-configuration-commons-configuration-1.10.jar:/data/apache-pulsar/lib/org.apache.distributedlog-distributedlog-common-4.14.2.jar:/da ta/apache-pulsar/lib/jakarta.xml.bind-jakarta.xml.bind-api-2.3.3.jar:/data/apache-pulsar/lib/org.reactivestreams-reactive-streams-1.0.3.jar:/data/apache-pulsar/lib/io.gsonfire-gson-fire-1.8.5.jar:/data/apache-pulsar/lib/org.apache.pulsar-pulsar-broker-2.9.1.jar:/data/apache-pulsar/lib/org.eclipse.jetty-jetty-security-9.4.43.v20210629.jar:/data/apache-pulsar/lib/org.apache.pulsar-pulsar-transaction-common-2.9.1.jar:/data/apache-pulsar/lib/org.apache.thrift-libthrift-0.14.2.jar:/data/apache-pulsar/lib/org.glassfish.hk2-hk2-utils-2.6.1.jar:/data/apache-pulsar/lib/io.grpc-grpc-protobuf-1.33.0.jar:/data/apache-pulsar/lib/com.fasterxml.jackson.core-jackson-core-2.12.3.jar:/data/apache-pulsar/lib/io.prometheus-simpleclient-0.5.0.jar:/data/apache-pulsar/lib/io.prometheus-simpleclient_httpserver-0.5.0.jar:/data/apache-pulsar/lib/org.eclipse.jetty.websocket-javax-websocket-client-impl-9.4.43.v20210629.jar:/data/apache-pulsar/lib/org.xerial.snappy-snappy-java-1.1.7.jar:/data/apache-pulsar/lib/
[GitHub] [pulsar] github-actions[bot] added a comment to the discussion: Debezium Demo Doesn't Work with 2.9.1 and Aurora 5.x
GitHub user github-actions[bot] added a comment to the discussion: Debezium Demo Doesn't Work with 2.9.1 and Aurora 5.x The issue had no activity for 30 days, mark with Stale label. GitHub link: https://github.com/apache/pulsar/discussions/20101#discussioncomment-5613700 This is an automatically sent email for commits@pulsar.apache.org. To unsubscribe, please send an email to: commits-unsubscr...@pulsar.apache.org
[GitHub] [pulsar] github-actions[bot] added a comment to the discussion: Debezium Demo Doesn't Work with 2.9.1 and Aurora 5.x
GitHub user github-actions[bot] added a comment to the discussion: Debezium Demo Doesn't Work with 2.9.1 and Aurora 5.x The issue had no activity for 30 days, mark with Stale label. GitHub link: https://github.com/apache/pulsar/discussions/20101#discussioncomment-5613701 This is an automatically sent email for commits@pulsar.apache.org. To unsubscribe, please send an email to: commits-unsubscr...@pulsar.apache.org
[GitHub] [pulsar] tisonkun closed issue #14305: Debezium Demo Doesn't Work with 2.9.1 and Aurora 5.x
tisonkun closed issue #14305: Debezium Demo Doesn't Work with 2.9.1 and Aurora 5.x URL: https://github.com/apache/pulsar/issues/14305 -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [pulsar] tisonkun commented on pull request #12396: Fix NPE when create OpEntry
tisonkun commented on PR #12396: URL: https://github.com/apache/pulsar/pull/12396#issuecomment-1508182416 Fixed by https://github.com/apache/pulsar/pull/15837 -- 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-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
svn commit: r61259 - /dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/
Author: baodi Date: Fri Apr 14 09:00:59 2023 New Revision: 61259 Log: Staging artifacts and signature for Pulsar Node.js client release 1.8.2-rc.4 Added: dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/ dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/apache-pulsar-client-node-1.8.2.tar.gz (with props) dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/apache-pulsar-client-node-1.8.2.tar.gz.asc dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/apache-pulsar-client-node-1.8.2.tar.gz.sha512 dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-darwin-unknown-arm64.tar.gz (with props) dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-darwin-unknown-arm64.tar.gz.asc dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-darwin-unknown-arm64.tar.gz.sha512 dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-darwin-unknown-x64.tar.gz (with props) dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-darwin-unknown-x64.tar.gz.asc dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-darwin-unknown-x64.tar.gz.sha512 dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-linux-glibc-arm64.tar.gz (with props) dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-linux-glibc-arm64.tar.gz.asc dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-linux-glibc-arm64.tar.gz.sha512 dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-linux-glibc-x64.tar.gz (with props) dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-linux-glibc-x64.tar.gz.asc dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-linux-glibc-x64.tar.gz.sha512 dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-linux-musl-arm64.tar.gz (with props) dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-linux-musl-arm64.tar.gz.asc dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-linux-musl-arm64.tar.gz.sha512 dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-linux-musl-x64.tar.gz (with props) dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-linux-musl-x64.tar.gz.asc dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-linux-musl-x64.tar.gz.sha512 dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-win32-unknown-ia32.tar.gz (with props) dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-win32-unknown-ia32.tar.gz.asc dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-win32-unknown-ia32.tar.gz.sha512 dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-win32-unknown-x64.tar.gz (with props) dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-win32-unknown-x64.tar.gz.asc dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/napi-win32-unknown-x64.tar.gz.sha512 Added: dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/apache-pulsar-client-node-1.8.2.tar.gz == Binary file - no diff available. Propchange: dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/apache-pulsar-client-node-1.8.2.tar.gz -- svn:mime-type = application/octet-stream Added: dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/apache-pulsar-client-node-1.8.2.tar.gz.asc == --- dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/apache-pulsar-client-node-1.8.2.tar.gz.asc (added) +++ dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/apache-pulsar-client-node-1.8.2.tar.gz.asc Fri Apr 14 09:00:59 2023 @@ -0,0 +1,16 @@ +-BEGIN PGP SIGNATURE- + +iQIzBAABCgAdFiEEnbUbKJ6SOn3CcPqaYxrD/PIvSAoFAmQ5Fh4ACgkQYxrD/PIv +SAoWow//dNo35Jt1pbt+8dCGJOJpEDXYi0d5jpUg9LraHJfmsqv5IZP2bnHyDURa +RXLNPTi4XmQN3K0x8DeBiqDreYfqIQHhvToAldwu1uIb5XYN8SrgLDFoE5QZVn6q +gss2BS1DtuB0N4AucAsPuARmxTd+vsWbEbXHn2r1yeYzaxZDl1z8uLA7tx/YkF0k +yIkcFcqr1Nlqg1Lz2FAHJ0cpnJrKbZmrs1FkOo9cuuN83/ujCf3v5499FVDG0YDM +CbAvy0hNzTgTGu20NHWjYtkPhLKyuC3BgR5nnbQv5bX0GLXDeR46B7F/CAuLe9LP +DYcouQVQlzmaVH4xaCNvmotGx6JQEQFfdWB12AAuwUxlUi5HMBR/QAYPRaRsPIGm +V4nmCF3Lekc12gK4InxAOa+/VVZN0QUGGbPRkDszgynm2gI71V8JbEUUwci+nYhB +u4zgWI2TPTA7NALKE87ipR9K9/U19rlarEkOCw58aPyi8FP3kc9fnYqxxXQzA/hN +qvISPuktgzIKD7vErfT777WpAlOS3a4lt98C0VN5m7g0NBWxr0fSepYeFAJSnnOk +pfCKYe1ikxN2MvhqHiGdWRZw/hWSP92wp71X2tDHXufAd3tPfa+caoF/5Ck+6PAC +wV8MOq3yp9/BduWmODs5aK/ArLaZ8TgXA2De+jb/4mi6XUDAKDI= +=oozQ +-END PGP SIGNATURE- Added: dev/pulsar/pulsar-client-node/pulsar-client-node-1.8.2-rc.4/apache-pulsar-client-node-1.8.2.tar.gz.sha512