2020-04-24 09:19:20 UTC - Ali Ahmed: yes should be
----
2020-04-24 09:19:41 UTC - Fayce: Thanks
----
2020-04-24 09:40:26 UTC - rani: > It seems that you didn’t configure this 
properly. Hence the anonymous role is used.
@Sijie Guo, hmm, when I set the following on `broker.conf` everything works as 
expected with the healthcheck endpoint.
```brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationToken
brokerClientAuthenticationParameters=token:<pulsar-role-admin-jwt-token>```
But is this configuration recommended?
I read in this issue that this is required for broker to broker communication. 
Is this still valid? <https://github.com/apache/pulsar/issues/4560>
----
2020-04-24 09:49:15 UTC - Fernando Miguélez: It is already available at maven 
central by the way
----
2020-04-24 10:06:30 UTC - Gabriel Volpe: Hi guys, can anyone tell me what 
should be the default behavior of calling `subscribe` with a subscription type 
`Exclusive` when another subscription of type `Exclusive` with the same name 
already exists?

The Java client says the following, which is not clear what "operation fails" 
means.

```     * @throws PulsarClientException
     *             if the the subscribe operation fails
     */
    Consumer&lt;T&gt; subscribe() throws PulsarClientException;```
I'm hoping the subscription cannot be created when there's an existing one but 
it's happening anyway, no errors.
----
2020-04-24 10:08:37 UTC - Rahul: If there is already one consumer running using 
the same subscription name then it will fail. Otherwise it will let you use the 
subscription name
----
2020-04-24 10:10:47 UTC - Gabriel Volpe: I have indeed another producer running 
in a different application but it doesn't publish messages until it gets 
triggered by certain events.
----
2020-04-24 10:11:14 UTC - Gabriel Volpe: Is there a way to verify it with the 
`pulsar-admin` ?
----
2020-04-24 10:12:08 UTC - Rahul: You can check the connected consumers using 
the admin cli
----
2020-04-24 10:15:29 UTC - Fayce: This example creates an Avro schema from a 
JSON string, but I don't see any message sent or received. How do you define 
the actual message? Do I just create a simple struct with the fields as 
described in the exampleSchema? In Java, you can create a schema directly from 
a class. Is there the same functionality in C++?
----
2020-04-24 10:16:22 UTC - Gabriel Volpe: Is that `pulsar-admin`? I'm trying to 
find what's the command
----
2020-04-24 10:19:35 UTC - Gabriel Volpe: ```root@9f7e3deb58bf:/pulsar# 
bin/pulsar-admin persistent stats <persistent://public/default/auth>
{
  "msgRateIn" : 0.0,
  "msgThroughputIn" : 0.0,
  "msgRateOut" : 0.0,
  "msgThroughputOut" : 0.0,
  "averageMsgSize" : 0.0,
  "storageSize" : 2632,
  "backlogSize" : 6,
  "publishers" : [ {
    "msgRateIn" : 0.0,
    "msgThroughputIn" : 0.0,
    "averageMsgSize" : 0.0,
    "producerId" : 0,
    "metadata" : { },
    "address" : "/172.22.0.10:43094",
    "producerName" : "standalone-0-297",
    "connectedSince" : "2020-04-24T10:03:02.946Z",
    "clientVersion" : "2.5.0"
  } ],
  "subscriptions" : {
    
"<persistent://public/default/auth-2b37c028-0476-4d82-90a4-b16032c08468-subscription>"
 : {
      "msgRateOut" : 0.0,
      "msgThroughputOut" : 0.0,
      "msgRateRedeliver" : 0.0,
      "msgBacklog" : 0,
      "blockedSubscriptionOnUnackedMsgs" : false,
      "msgDelayed" : 0,
      "unackedMessages" : 0,
      "type" : "Exclusive",
      "msgRateExpired" : 0.0,
      "lastExpireTimestamp" : 0,
      "consumers" : [ ],
      "isReplicated" : false
    },
    
"<persistent://public/default/auth-e1236e39-acda-468d-bc75-d3b5e1f83508-subscription>"
 : {
      "msgRateOut" : 0.0,
      "msgThroughputOut" : 0.0,
      "msgRateRedeliver" : 0.0,
      "msgBacklog" : 7,
      "blockedSubscriptionOnUnackedMsgs" : false,
      "msgDelayed" : 0,
      "unackedMessages" : 0,
      "type" : "Exclusive",
      "msgRateExpired" : 0.0,
      "lastExpireTimestamp" : 0,
      "consumers" : [ ],
      "isReplicated" : false
    },
    
"<persistent://public/default/auth-7f71fe1f-4024-414e-93b2-b313b204951d-subscription>"
 : {
      "msgRateOut" : 0.0,
      "msgThroughputOut" : 0.0,
      "msgRateRedeliver" : 0.0,
      "msgBacklog" : 7,
      "blockedSubscriptionOnUnackedMsgs" : false,
      "msgDelayed" : 0,
      "unackedMessages" : 0,
      "type" : "Exclusive",
      "msgRateExpired" : 0.0,
      "lastExpireTimestamp" : 0,
      "consumers" : [ ],
      "isReplicated" : false
    },
    
"<persistent://public/default/auth-436c4d6f-a172-4d82-86b3-a47696b8da03-subscription>"
 : {
      "msgRateOut" : 0.0,
      "msgThroughputOut" : 0.0,
      "msgRateRedeliver" : 0.0,
      "msgBacklog" : 0,
      "blockedSubscriptionOnUnackedMsgs" : false,
      "msgDelayed" : 0,
      "unackedMessages" : 0,
      "type" : "Exclusive",
      "msgRateExpired" : 0.0,
      "lastExpireTimestamp" : 0,
      "consumers" : [ ],
      "isReplicated" : false
    },
    
"<persistent://public/default/auth-88a8c412-a099-46a9-8cab-92bc9d30cb3d-subscription>"
 : {
      "msgRateOut" : 0.0,
      "msgThroughputOut" : 0.0,
      "msgRateRedeliver" : 0.0,
      "msgBacklog" : 0,
      "blockedSubscriptionOnUnackedMsgs" : false,
      "msgDelayed" : 0,
      "unackedMessages" : 0,
      "type" : "Exclusive",
      "msgRateExpired" : 0.0,
      "lastExpireTimestamp" : 0,
      "consumers" : [ ],
      "isReplicated" : false
    },
    
"<persistent://public/default/auth-61e7a134-bb97-4d92-b16b-ce8639a9e786-subscription>"
 : {
      "msgRateOut" : 0.0,
      "msgThroughputOut" : 0.0,
      "msgRateRedeliver" : 0.0,
      "msgBacklog" : 7,
      "blockedSubscriptionOnUnackedMsgs" : false,
      "msgDelayed" : 0,
      "unackedMessages" : 0,
      "type" : "Exclusive",
      "msgRateExpired" : 0.0,
      "lastExpireTimestamp" : 0,
      "consumers" : [ ],
      "isReplicated" : false
    },
    "<persistent://public/default/auth-subscription>" : {
      "msgRateOut" : 0.0,
      "msgThroughputOut" : 0.0,
      "msgRateRedeliver" : 0.0,
      "msgBacklog" : 0,
      "blockedSubscriptionOnUnackedMsgs" : false,
      "msgDelayed" : 0,
      "unackedMessages" : 0,
      "type" : "Exclusive",
      "msgRateExpired" : 0.0,
      "lastExpireTimestamp" : 0,
      "consumers" : [ ],
      "isReplicated" : false
    },
    
"<persistent://public/default/auth-43068564-cd8c-450a-8276-2e1119b13b25-subscription>"
 : {
      "msgRateOut" : 0.0,
      "msgThroughputOut" : 0.0,
      "msgRateRedeliver" : 0.0,
      "msgBacklog" : 0,
      "blockedSubscriptionOnUnackedMsgs" : false,
      "msgDelayed" : 0,
      "unackedMessages" : 0,
      "type" : "Exclusive",
      "msgRateExpired" : 0.0,
      "lastExpireTimestamp" : 0,
      "consumers" : [ ],
      "isReplicated" : false
    },
    
"<persistent://public/default/auth-d00ff3a0-94a3-4025-9072-26f8b9c04a24-subscription>"
 : {
      "msgRateOut" : 0.0,
      "msgThroughputOut" : 0.0,
      "msgRateRedeliver" : 0.0,
      "msgBacklog" : 0,
      "blockedSubscriptionOnUnackedMsgs" : false,
      "msgDelayed" : 0,
      "unackedMessages" : 0,
      "type" : "Exclusive",
      "msgRateExpired" : 0.0,
      "lastExpireTimestamp" : 0,
      "consumers" : [ ],
      "isReplicated" : false
    },
    
"<persistent://public/default/auth-70f9c16f-e9b4-4cb7-8383-cde1857ffb3c-subscription>"
 : {
      "msgRateOut" : 0.0,
      "msgThroughputOut" : 0.0,
      "msgRateRedeliver" : 0.0,
      "msgBacklog" : 0,
      "blockedSubscriptionOnUnackedMsgs" : false,
      "msgDelayed" : 0,
      "unackedMessages" : 0,
      "type" : "Exclusive",
      "activeConsumerName" : "53105",
      "msgRateExpired" : 0.0,
      "lastExpireTimestamp" : 0,
      "consumers" : [ {
        "msgRateOut" : 0.0,
        "msgThroughputOut" : 0.0,
        "msgRateRedeliver" : 0.0,
        "consumerName" : "53105",
        "availablePermits" : 987,
        "unackedMessages" : 0,
        "blockedConsumerOnUnackedMsgs" : false,
        "metadata" : { },
        "address" : "/172.22.0.4:52094",
        "connectedSince" : "2020-04-24T10:03:24.013Z",
        "clientVersion" : "2.5.0"
      } ],
      "isReplicated" : false
    }
  },
  "replication" : { },
  "deduplicationStatus" : "Disabled",
  "bytesInCounter" : 2632,
  "msgInCounter" : 13
}```
----
2020-04-24 10:20:07 UTC - Gabriel Volpe: That tells me there is a publisher 
connected right?
----
2020-04-24 10:20:31 UTC - Gabriel Volpe: The other issue I'm seeing is that 
subscriptions don't get removed when I call `unsubscribe` , what could be 
keeping them there?
----
2020-04-24 10:21:40 UTC - Rahul: You can see the `consumerName` section
----
2020-04-24 10:26:24 UTC - Gabriel Volpe: It's there `"producerName" : 
"standalone-0-297",`
----
2020-04-24 10:26:39 UTC - Gabriel Volpe: It looks like a bug then?
----
2020-04-24 10:38:44 UTC - Gabriel Volpe: Or maybe I misunderstood what you said 
and the `producerName` should actually match the `subscriptionName` such as 
`<persistent://public/default/auth-70f9c16f-e9b4-4cb7-8383-cde1857ffb3c-subscription>`
 ? That seems very unlikely to happen given the format of the subscription name.
----
2020-04-24 10:40:23 UTC - Rahul: You can pass the consumer name while starting 
your producer application. Otherwise pulsar randomly assigns a producer name 
when you start the producer application
----
2020-04-24 10:41:31 UTC - Gabriel Volpe: Okay so I should give my producer a 
name matching the name of the subscription if I don't want other exclusive 
subscriptions to be created? That seems odd no?
----
2020-04-24 10:41:56 UTC - Gabriel Volpe: Is this behavior documented somewhere? 
I'd like to deepen my understanding
----
2020-04-24 10:43:34 UTC - Rahul: Producer name has nothing to do with the 
subscription name.

It will be somewhere in the documentation. Not sure where though.
----
2020-04-24 10:43:56 UTC - Gabriel Volpe: mmm sorry, I don't understand then
----
2020-04-24 10:48:30 UTC - Gabriel Volpe: &gt;  If there is already one producer 
running using the same subscription name then it will fail. Otherwise it will 
let you use the subscription name
What does this mean then? I'm creating an exclusive subscription and then 
another exclusive subscription is being created for the same topic when I 
expect it to fail (isn't that what exclusive mean after all?
----
2020-04-24 10:48:46 UTC - Gabriel Volpe: I'm a little bit lost on how all this 
works, really appreciate your help
----
2020-04-24 10:58:23 UTC - Rahul: Sorry. My bad. You have to look at the 
consumer side.
Just check that when you are trying to subscribe to a topic at that moment 
there is no existing consumer is connected to that topic using the same 
subscription name when using exclusive subscription.
If there is an existing consumer on that subscription then subscribe operation 
will throw error. Otherwise it will use the same subscription name and start 
reading from the offset.
----
2020-04-24 11:08:03 UTC - Gabriel Volpe: That makes sense, thanks.
----
2020-04-24 11:08:50 UTC - Gabriel Volpe: I only have one consumer at a time for 
this topic, so that's why it doesn't fail
----
2020-04-24 11:09:56 UTC - Gabriel Volpe: I was still seeing the issue with 
previous subscriptions (created by the same application) not being removed upon 
calling `unsubscribe` but I did restart everything (including `pulsar` ) and 
now it seems to work as expected, it was driving me crazy
----
2020-04-24 11:09:59 UTC - Gabriel Volpe: Thanks for your help
----
2020-04-24 12:16:35 UTC - Rattanjot Singh: Hello,
```bin/pulsar-admin properties create my-tenant \
&gt;   --admin-roles my-admin-role \
&gt;   --allowed-clusters us-west,us-east
WARN: The properties subcommand is deprecated. Please use tenants instead
null

Reason: <http://javax.ws.rs|javax.ws.rs>.ProcessingException```
It was working before. it started giving this error. any ideas how to resolve 
this
----
2020-04-24 12:19:31 UTC - Chris Bartholomew: Change `properties` to `tenants` 
in the command. The term `properties` has been replaced by `tenants`.
----
2020-04-24 12:22:13 UTC - Rattanjot Singh: ```bin/pulsar-admin tenants create 
my-tenant   --admin-roles my-admin-role   --allowed-clusters us-west,us-east
null

Reason: <http://javax.ws.rs|javax.ws.rs>.ProcessingException```
Still getting this error
----
2020-04-24 12:24:26 UTC - Chris Bartholomew: Have you changed your 
`conf/client.conf` file recently?
----
2020-04-24 12:25:15 UTC - Rattanjot Singh: no
----
2020-04-24 12:27:01 UTC - Chris Bartholomew: Is the URL set for `webServiceUrl` 
in that file still reachable from where you are running the command?
----
2020-04-24 12:27:32 UTC - Shivji Kumar Jha: Is there a boker.conf and namespace 
conf for this? cant find one..
```    /**
     * Set message-publish-rate (topics under this namespace can publish this 
many messages per second).
     *
     * @param namespace
     * @param publishMsgRate
     *            number of messages per second
     * @throws PulsarAdminException
     *             Unexpected error
     */
    void setPublishRate(String namespace, PublishRate publishMsgRate) throws 
PulsarAdminException;

    /**
     * Set message-publish-rate (topics under this namespace can publish this 
many messages per second) asynchronously.
     *
     * @param namespace
     * @param publishMsgRate
     *            number of messages per second
     */
    CompletableFuture&lt;Void&gt; setPublishRateAsync(String namespace, 
PublishRate publishMsgRate);```
----
2020-04-24 12:28:17 UTC - Rattanjot Singh: Yes I am able to telnet
+1 : Chris Bartholomew
----
2020-04-24 12:29:44 UTC - Chris Bartholomew: When you run the command, do you 
see anything in the logs on the proxy/broker you are connecting to?
----
2020-04-24 12:31:11 UTC - Aviram Webman: Hi,
pulsar-flink connector, which one should I use?
<https://github.com/streamnative/pulsar-flink>
or
<https://github.com/apache/pulsar/tree/master/pulsar-flink>
----
2020-04-24 12:31:55 UTC - Rattanjot Singh: which logs do i need to check?
----
2020-04-24 12:37:54 UTC - Chris Bartholomew: Look in the `logs` directory or 
use `kubectl logs &lt;podname&gt;` if running in Kubernetes
----
2020-04-24 12:44:29 UTC - Rattanjot Singh: ```12:41:59.898 
[pulsar-external-listener-40-1] WARN  
org.apache.pulsar.client.impl.PulsarClientImpl - [topic: 
<persistent://my-tenant/my-namespace/my-topic3>] Could not ge
t connection while getPartitionedTopicMetadata -- Will try again in 100 ms```
getting this error in logs
----
2020-04-24 12:47:58 UTC - Chris Bartholomew: This looks like a client is trying 
to connect to the tenant that's been failing on create. Does that tenant 
already exist? What do you get when you do `pulsar-admin tenants list`?
----
2020-04-24 12:51:01 UTC - Rattanjot Singh: ```bin/pulsar-admin tenants list
null

Reason: <http://javax.ws.rs|javax.ws.rs>.ProcessingException```
same error
----
2020-04-24 12:54:14 UTC - Chris Bartholomew: Where are you running the admin 
command from? Can you run the command on the same server as the broker?
----
2020-04-24 12:54:30 UTC - Rattanjot Singh: I am running this on the broker only
----
2020-04-24 12:55:28 UTC - Chris Bartholomew: And what is set for 
`webServiceUrl` in the `client.conf`?
----
2020-04-24 12:57:26 UTC - Rattanjot Singh: http://&lt;broker-dns&gt;:8080
----
2020-04-24 12:58:26 UTC - Chris Bartholomew: What happens if you change it to 
`<http://localhost:8080>`?
----
2020-04-24 13:00:11 UTC - Rattanjot Singh: It's working
----
2020-04-24 13:01:47 UTC - Rattanjot Singh: but why is it failing for broker dns
----
2020-04-24 13:02:26 UTC - Rattanjot Singh: It was working before with the 
broker dns
----
2020-04-24 13:03:06 UTC - Chris Bartholomew: Your DNS is not resolving to the 
broker IP
----
2020-04-24 13:07:14 UTC - Rattanjot Singh: Thanks for your help
+1 : Chris Bartholomew
----
2020-04-24 13:19:09 UTC - Ebere Abanonu: @Sijie Guo what protocol version is 
pulsar 2.5.1? 15?
----
2020-04-24 14:06:56 UTC - Addison Higham: The built in connector  (in the 
pulsar repo) is very simple, it doesn't support schema, it isn't exactly once. 
However, because of how simple it is a bit more stable. The newer one by stream 
native is much more full featured. However, it  is still pretty new and has 
some rough edges. It is much better than even just a few months ago but 
depending on your use case, you may need to make some tweaks to it
+1 : Aviram Webman
----
2020-04-24 14:13:56 UTC - Konstantinos Papalias: Yes I had the same question 
around the semantics on Pulsar!
----
2020-04-24 14:14:38 UTC - Konstantinos Papalias: If you were to implement joins 
on Pulsar Functions, how would you approach it?
----
2020-04-24 16:20:44 UTC - rani: Trying to start a function with the following 
configuration fails. However it works well for java based functions! Is 
`customRuntimeOptions` supported for python functions? If not, are there any 
other means by which the same intended effect can be achieved (setting node 
selectors and tolerations)?
```name: pythonprocessor
tenant: public
namespace: default
py: /tmp/exclamation-function.py
className: exclamation-function.ExclamationFunction
inputs:
  - <persistent://sales/salesforce/pythonprocessor-input>
output: <persistent://sales/salesforce/pythonprocessor-output>
customRuntimeOptions: '{
  "extraLabels": {
    "pythonlabel": "pythonvalue"
  },
  "extraAnnotations": {
    "pythonAnnotation": "pythonannotationvalue"
  },
 "nodeSelectorLabels": {
    "instance_type": "special_instance"
  },
  "tolerations": [
    {
      "key": "dedicated",
      "value": "special_instance",
      "effect": "NoSchedule"
    }
  ]
}'```
Results in the function starting with this error:
```16:15:43.934 [main] INFO  org.apache.pulsar.common.util.SecurityUtility - 
Found and Instantiated Bouncy Castle provider in classpath BC
"Downloaded successfully"
shardId=0
Traceback (most recent call last):
  File "/pulsar/instances/python-instance/python_instance_main.py", line 211, 
in &lt;module&gt;
    main()
  File "/pulsar/instances/python-instance/python_instance_main.py", line 98, in 
main
    json_format.Parse(args.function_details, function_details)
  File "/usr/local/lib/python2.7/dist-packages/google/protobuf/json_format.py", 
line 430, in Parse
    return ParseDict(js, message, ignore_unknown_fields, descriptor_pool)
  File "/usr/local/lib/python2.7/dist-packages/google/protobuf/json_format.py", 
line 450, in ParseDict
    parser.ConvertMessage(js_dict, message)
  File "/usr/local/lib/python2.7/dist-packages/google/protobuf/json_format.py", 
line 481, in ConvertMessage
    self._ConvertFieldValuePair(value, message)
  File "/usr/local/lib/python2.7/dist-packages/google/protobuf/json_format.py", 
line 592, in _ConvertFieldValuePair
    raise ParseError(str(e))
google.protobuf.json_format.ParseError: Message type "proto.FunctionDetails" 
has no field named "customRuntimeOptions".
 Available Fields(except extensions): ['tenant', 'namespace', 'name', 
'className', 'logTopic', 'processingGuarantees', 'userConfig', 'secretsMap', 
'runtime', 'autoAck', 'parallelism', 'source', 'sink', 'resources', 
'packageUrl', 'retryDetails', 'runtimeFlags', 'componentType']```
----
2020-04-24 16:45:00 UTC - Alexander Ursu: Hi, was wondering if anyone had any 
experience setting up the Pulsar proxy with certbot for transport encryption 
using TLS, and automatically renewing certificates
----
2020-04-24 19:24:31 UTC - Tamer: I am running pulsar on kubernetes so we just 
use `cert-manager` to manage all TLS automatic renewal (with DNS validation). I 
configure an ingress gateway (Istio, Contour or nginx) to redirect traffic to 
the pulsar proxy

<https://cert-manager.io/docs/installation/kubernetes/|https://cert-manager.io/docs/installation/kubernetes/>
----
2020-04-24 20:58:17 UTC - rani: And btw, even without setting 
`brokerClientAuthenticationPlugin` and `brokerClientAuthenticationParameters` 
most other endpoints work as expected (listing tenants, listing topics, etc)
----
2020-04-24 23:14:02 UTC - Ebere Abanonu: it is v15
----
2020-04-25 00:33:35 UTC - Sijie Guo: Which version are you using?
----
2020-04-25 05:17:33 UTC - Subash Kunjupillai: Hi, basic questions on baremetal 
deployment of Pulsar..
1. If we enable Authentication using TLS, and regenerate the certificate for 
broker and client (before expiry), will Pulsar instance refresh the new 
certificates in run-time? or do we need to restart the services when the 
certificates are regenerated before  it's expiry?
2. Also, I couldn't see any step to encrypt the traffic between Broker and 
Bookie. Is it handled internally or the traffic between Broker and Bookie is 
still in plain text?
----
2020-04-25 08:55:25 UTC - rani: *Pulsar Component Version*: `2.5.1-candidate-3`
*Architecture*: Function workers running on k8s separately from remaining 
components that are managed on EC2 via ASGs. Pulsar proxy was configured to be 
aware of the separate function worker cluster by configuring 
`functionWorkerWebServiceURL` appropriately.
----

Reply via email to