2020-02-07 09:41:06 UTC - sky-big: @sky-big has joined the channel
----
2020-02-07 13:03:00 UTC - Shahar Fermon: @Shahar Fermon has joined the channel
----
2020-02-07 13:34:34 UTC - Guilherme Perinazzo: I'm also having issues 
connecting to pulsar websocket on standalone
----
2020-02-07 14:22:37 UTC - markg: thank you all for the responses
----
2020-02-07 16:15:54 UTC - Sijie Guo: Yes there was an issue regarding websocket 
running in stand-alone using 2.5. There was a fix. We will include that in 
2.5.1 release 
----
2020-02-07 17:40:20 UTC - Addison Higham: I rebased all my open PRs, 
:crossed_fingers: I make the build gods happy :slightly_smiling_face:
man-bowing : Matteo Merli
----
2020-02-07 20:49:04 UTC - Devin G. Bost: Are all the bookie addresses in ZK 
persistent instead of ephemeral?
----
2020-02-07 21:17:43 UTC - Devin G. Bost: I wonder if keeping persistent records 
could be problematic in some cases because my team has seen some issues in 
production where ZK ends up hanging onto old or dirty data (usually after a 
problem that requires intervention), and we end up needing to manually remove 
entries from ZK to try to get things back to a working state.
----
2020-02-07 21:29:41 UTC - Addison Higham: what are you seeing exactly? Brokers 
are trying to talk to bookies that no longer exist?
----
2020-02-07 23:58:53 UTC - Eugen: Shouldn't
`producer.send();`
`producer.send();`
and
`producer.sendAsync();`
`producer.sendAsync();`
`producer.flush();`
be identical in terms of what and in what order the consumer will receive?
----
2020-02-07 23:59:23 UTC - Matteo Merli: Yes
----
2020-02-07 23:59:44 UTC - Matteo Merli: Assuming eclusive/failover subscription
----
2020-02-08 00:00:00 UTC - Eugen: Funny thing, it is not identical
----
2020-02-08 00:00:46 UTC - Eugen: I played around with deduplication unit tests, 
and the last line here should fail:
```producer.newMessage().value("my-message-0".getBytes()).sequenceId(2).sendAsync();
producer.newMessage().value("my-message-1".getBytes()).sequenceId(3).sendAsync();
producer.newMessage().value("my-message-2".getBytes()).sequenceId(5).sendAsync();

producer.flush();

// Repeat the messages and verify they're not received by consumer
producer.newMessage().value("A".getBytes()).sequenceId(2).sendAsync();
producer.newMessage().value("B".getBytes()).sequenceId(6).sendAsync();
producer.flush(); // not that it SHOULD matter, as the .close() below would 
(hopefully) imply flushing first
producer.close();

for (int i = 0; i < 3; i++) {
    Message<byte[]> msg = consumer.receive();
    assertEquals(new String(msg.getData()), "my-message-" + i);
    consumer.acknowledge(msg);
}

Message<byte[]> msg = consumer.receive(1, TimeUnit.SECONDS);
assertNull(msg);```
----
2020-02-08 00:01:34 UTC - Eugen: because of my message "B", which, due to the 
higher seqId is not a dupe, being added to the topic
----
2020-02-08 00:01:43 UTC - Eugen: however it does not fail!
----
2020-02-08 00:02:37 UTC - Eugen: now when I change the `sendAsync()` of both 
(!) "A" and "B" to `send()`, that last line will fail, as it should
----
2020-02-08 00:03:04 UTC - Eugen: ok, if that is not what's supposed to happen, 
I will look into it
----
2020-02-08 00:04:13 UTC - Eugen: interestingly, changing above code to only 
send "B" synchronously does not make the test fail, which doesn't make much 
sense to me, because asynchronously sending the duplicate "A" beforehand should 
not have anything to do with synchronously sending "B"
----
2020-02-08 00:30:07 UTC - Sijie Guo: ephemeral
----
2020-02-08 00:30:34 UTC - Sijie Guo: would be helpful if you can describe more 
about what you have done.
----
2020-02-08 02:28:37 UTC - Penghui Li: Looks like it’s related to the batch 
message.
```if (sequenceId <= lastSequenceIdPushed) {
                            if (sequenceId <= lastSequenceIdPublished) {
                                log.warn("Message with sequence id {} is 
definitely a duplicate", sequenceId);
                            } else {
                                <http://log.info|log.info>("Message with 
sequence id {} might be a duplicate but cannot be determined at this time.",
                                    sequenceId);
                            }
                            doBatchSendAndAdd(msg, callback, payload);
                        }```
You can check if A and B are in a batch.
----
2020-02-08 02:31:56 UTC - Penghui Li: If related to the batch message, we need 
to optimize here
----
2020-02-08 07:37:54 UTC - Penghui Li: @Eugen I have added an issue on github to 
track this problem <https://github.com/apache/pulsar/issues/6273>. Looks this 
is a obvious bug.
----

Reply via email to