vernemq:1.5.0-plumtree-fix

Last commit made on 2018-10-26
Get this branch:
git clone -b 1.5.0-plumtree-fix https://git.launchpad.net/vernemq

Branch merges

Branch information

Name:
1.5.0-plumtree-fix
Repository:
lp:vernemq

Recent commits

bde2dd6... by Andre Graf <email address hidden>

upgrade Plumtree dependency

0d55787... by Andre Graf <email address hidden>

Upgrade plumtree dependency

b4da559... by Andre Graf <email address hidden>

Bump Version Number to 1.5.0

7f4e634... by Lars Hesel Christensen <email address hidden>

Fetch http body directly to avoid drying up the connection pool

65b7ec0... by Lars Hesel Christensen <email address hidden>

Ensure the `vmq_bridge` is properly restarted after a crash

590dc97... by Lars Hesel Christensen <email address hidden>

Fix description of mqtt4 disconnect received metric

Should say `received` instead of `sent`.

be1e500... by Lars Hesel Christensen <email address hidden>

Generalize metrics

bf21f46... by Lars Hesel Christensen <email address hidden>

Use git hashes in non-tagged package names (nightly builds)

This makes it easier to reason about nightly bulds and the features
they contain.

de1b1f5... by Dairon Medina Caro <email address hidden>

Remove cuttlefish warning about message_size_limit

The setting `message_size_limit` has been deprecated for long but
still when one runs `vernemq config generate` or starts the broker
without a configuration file, it warns about this setting even when is
not set. This change makes it warn only if the setting has been
changed to a non-default value.

c0a49f1... by Andre Graf <email address hidden>

Fix QoS2 retry for reconnecting clients, and refactor and cleanup retry mechanism (#763)

* Fix QoS2 retry for reconnecting clients, and retry mechanism improvement

- Store the *parsed* PUBREL inside the waiting acks instead of the
serialized binary. This enables to reuse the same functionality for
handling retried PUBRELs, without caring if it is retried because of a
timeout or because of a reconnect. Cleanup places which relied on the
serialized binary.
- Fixing above enabled the possibility to implement a small performance
improvement where we could get rid of using `length()` on the outgoing
batch of frames for incrementing the `mqtt_publishes_sent` counter.
- Improved `vmq_publish_SUITE.erl` to test that a client responds to
PINGREQs before closing the Socket. This validates that 1st. the client
hasn't crashed in the meantime (e.g. because not being able to handle
the PUBCOMP, see bug #762), and 2nd that the last received frame on this
socket is the PINGRESP.
- The improvement above discovered an edgecase with a PUBREL frame that
has been retried too fast, indicating a bug in the retry mechanism. This
has been fixed with tagging the message IDs inside the retry queue. As a
result the retry mechanism can differentiate between retrying a PUBLISH
and a PUBREL. Without this fix a retried, already acked PUBLISH, would
have retried an unacked PUBREL right away.
- Removing several function clauses that were forgotten when fixing #750

* rename deliver_bin to deliver_pubrel