All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Invalid events parsing.
- Invalid payload parsing in anti entropy step.
- Invalid payload parsing when the message is broken.
- IPv6 support.
remove_member
function to clean up member data.
- Log overflow when inner fibers weren't canceled.
-
New option
SUSPICIOUSNESS
(default:true
) allows to disable generation of rumors about suspected members. Also, membership won't produce any rumors unless myself is alive. -
New option
log_debug
which can be easily overridden to control the verbosity level.
-
Uncaught exception which prevented discovering non-decryptable members.
-
Avoid event duplication due to a bug.
-
Properly handle the internal option
NUM_FAILURE_DETECTION_SUBGROUPS
which controls the number of indirect pings.
- Enhance logging of
getaddrinfo
errors when DNS malfunctions.
- Make the initialization error more informative.
- Allow reloading the code on the fly without status intervention.
- Make subscriptions garbage-collectible. Previously,
fiber.cond
objects obtained frommembership.subscribe
should have been unsubscribed manually, otherwise, they would never be GC'ed. And now they are.
- New field
member.clock_delta
, which indicates difference between remote and local clocks.
- In some cases membership did disseminate invalid (nil) payload. The bug relates versions 2.1.2, 2.1.3.
- Leaving membership with encryption enabled. Due to the bug, other members reported 'dead' status instead of 'left'.
- Ldoc api documentation
- Fairly calculate size of UDP packets
- Speed up events dissemination by fully utilizing PING and ACK packets
- Restrict packet size for anti-entropy sync. Due to the lack of restriction it used to fail which plagued members detection
- Make tests lighter by using
console
connection instead ofnet.box
- Obtain UDP broadcast address from
getifaddrs
C call
- Module
checks
dependency updated to v3.0.0
- API method
probe_uri()
- API method
get_member()
- Low-level encryption support
- API methods
set_encryption_key()
,get_encryption_key()
- API method
broadcast()
- API methods
subscribe()
,unsubscribe()
- API method
set_payload()
now sets only the given key within payload table - Hide internal numeric
status
from public API
- Rename API method:
quit()
->leave()
- Basic functionality
- Integration tests
- Luarock-based packaging
- Gitlab CI integration