* origin/topic/vern/ZAM-leaks-and-test-suite:
test suite alternative baseline fixes for recent test renaming
addressed a couple of memory leaks in ZAM execution
* leres/master:
Make FreeBSD more flexible, don't look for jemalloc unless we were given a specific path for it.
Set JEMALLOC_FOUND when on FreeBSD (suggested by Tim Wojtulewicz)
FreeBSD: don't look for jemalloc as a package, it's in the base system
* topic/christian/cluster-controller-next: (22 commits)
Remove periodic pinging of controller by agents
Move cluster controller/agent main.zeek scripts into their own modules
Bump zeek-client
First uses of request state timeouts
Add expiration mechanism to client request state.
Move get_instances_response event to using a Result record
Track successful config deployment in cluster controller
Bump zeek-client
Add ClusterController::API::notify_agents_ready event
Make all globals start with a "g_" prefix
Add missing debug() log function to log module's API
Add separate utility module for controller and agent
Bump zeek-client
Support for dropping instances no longer needed after config updates
Additional infrastructure for printing types
Bump zeek-client
Support on-demand peering with agents when receiving new cluster configuration
Expand requests support in the controller
Whitespace tweaks in cluster controller and agent scripts
Add Github action job for cluster tests
...
- Removes dependency on <regex.h>
- Replaces regex function with Zeek's standard regex functions
- Some replacements are workaround, may be improved later via an
appropiate API
- Update test baseline to fix what seems to be capturing on a bug in the
existing code.
Edit pass by Robin Sommer. Note that our test doesn't cover all the code
paths, but it does go through the one with the most substantial change.
This changes the agent-controller communication to remove the need for ongoing
pinging of the controller by agents not actively "in service". Instead, agents
now use the notify_agent_hello event to the controller to report only their
identity. The controller puts them into service via an agent_welcome_request/
response pair, and takes them out of service via agent_standby_request/response.
This removes the on_change handler from the set of agents that is ready for
service, because not every change to this set is now a suitable time to
potentially send out the configuration. We now invoke this check explicitly in
the two situations where it's warranted: when a agent reports ready for service,
and when we've received a new configuration.
This has no practical relevance other than allowing the two to be loaded a the
same time, which some of our (cluster-unrelated) tests require. Absence of
namespacing would trigger symbol clashes at this point.