Back to list
info: starting build process on Thu Jan 8 05:36:29 AM UTC 2026
make: Entering directory '/home/alexis/snapwebsites/snapcpp/BUILD/Debug/contrib/cluck'
make[1]: Entering directory '/home/alexis/snapwebsites/snapcpp/BUILD/Debug/contrib/cluck'
make[2]: Entering directory '/home/alexis/snapwebsites/snapcpp/BUILD/Debug/contrib/cluck'
make[2]: Leaving directory '/home/alexis/snapwebsites/snapcpp/BUILD/Debug/contrib/cluck'
[ 16%] Built target cluck
make[2]: Entering directory '/home/alexis/snapwebsites/snapcpp/BUILD/Debug/contrib/cluck'
make[2]: Leaving directory '/home/alexis/snapwebsites/snapcpp/BUILD/Debug/contrib/cluck'
[ 38%] Built target cluckd
make[2]: Entering directory '/home/alexis/snapwebsites/snapcpp/BUILD/Debug/contrib/cluck'
make[2]: Leaving directory '/home/alexis/snapwebsites/snapcpp/BUILD/Debug/contrib/cluck'
[ 41%] Built target daemon_message-definitions_VerifyMessageDefinitions
make[2]: Entering directory '/home/alexis/snapwebsites/snapcpp/BUILD/Debug/contrib/cluck'
make[2]: Leaving directory '/home/alexis/snapwebsites/snapcpp/BUILD/Debug/contrib/cluck'
[ 52%] Built target cluck-status
make[2]: Entering directory '/home/alexis/snapwebsites/snapcpp/BUILD/Debug/contrib/cluck'
make[2]: Leaving directory '/home/alexis/snapwebsites/snapcpp/BUILD/Debug/contrib/cluck'
[ 75%] Built target cluckdaemon
make[2]: Entering directory '/home/alexis/snapwebsites/snapcpp/BUILD/Debug/contrib/cluck'
make[2]: Leaving directory '/home/alexis/snapwebsites/snapcpp/BUILD/Debug/contrib/cluck'
[ 94%] Built target unittest
make[2]: Entering directory '/home/alexis/snapwebsites/snapcpp/BUILD/Debug/contrib/cluck'
make[2]: Leaving directory '/home/alexis/snapwebsites/snapcpp/BUILD/Debug/contrib/cluck'
make[2]: Entering directory '/home/alexis/snapwebsites/snapcpp/BUILD/Debug/contrib/cluck'
[ 97%] Generating API documentation with Doxygen
make[2]: Leaving directory '/home/alexis/snapwebsites/snapcpp/BUILD/Debug/contrib/cluck'
[100%] Built target cluck_Documentation
make[1]: Leaving directory '/home/alexis/snapwebsites/snapcpp/BUILD/Debug/contrib/cluck'
make: Leaving directory '/home/alexis/snapwebsites/snapcpp/BUILD/Debug/contrib/cluck'
../../BUILD/Debug/contrib/cluck/tests/unittest --tmp-dir "../../BUILD/Debug/contrib/cluck/tmp" --binary-dir "/home/alexis/snapwebsites/snapcpp/BUILD/Debug/contrib/cluck" --dist-dir "/home/alexis/snapwebsites/snapcpp/BUILD/Debug/dist" --source-dir "/home/alexis/snapwebsites/snapcpp/contrib/cluck" --progress ""
cluck v1.0.1 [454191]:unittest: seed is 1767850590
source directory: "/home/alexis/snapwebsites/snapcpp/contrib/cluck"
binary directory: "/home/alexis/snapwebsites/snapcpp/BUILD/Debug/contrib/cluck"
dist directory: "/home/alexis/snapwebsites/snapcpp/BUILD/Debug/dist"
temporary directory: "../../BUILD/Debug/contrib/cluck/tmp"
Randomness seeded to: 533258122
SECTION: cluck_client: verify timeouts
SECTION: cluck_client: successful LOCK (simple)
--- message: cluckd/LOCK object_name=lock-name;pid=454191;serial=1;tag=10001;timeout=1767850593.488190531;transmission_report=failure
--- message: --- test_case = [valid]....
--- message: --- test_case = not equal invalid tag....
--- message: .:communicatord/COMMANDS list=DATA,LOCKED,LOCK_FAILED,LOCK_READY,NO_LOCK,TRANSMISSION_REPORT,UNLOCKED,UNLOCKING
--- message: cluckd/UNLOCK object_name=lock-name;pid=454191;serial=1;tag=10001
SECTION: cluck_client: successful LOCK (extended)
--- message: cluckd/LOCK duration=3600;object_name=lock-name;pid=454191;serial=2;tag=10002;timeout=1767850601.389182394;transmission_report=failure;type=1;unlock_duration=3
--- message: .:communicatord/COMMANDS list=DATA,LOCKED,LOCK_FAILED,TRANSMISSION_REPORT,UNLOCKED,UNLOCKING
--- message: tester/READ size=219
--- message: cluckd/UNLOCK object_name=lock-name;pid=454191;serial=2;tag=10002
SECTION: cluck_client: failing UNLOCKED (invalid object name)
--- message: cluckd/LOCK object_name=lock-name;pid=454191;serial=3;tag=10003;timeout=1767850594.293313021;transmission_report=failure
--- message: .:communicatord/COMMANDS list=DATA,LOCKED,LOCK_FAILED,TRANSMISSION_REPORT,UNLOCKED,UNLOCKING
--- message: cluckd/UNLOCK object_name=lock-name;pid=454191;serial=3;tag=10003
--- message: my_server:cluckd/INVALID command=UNLOCKED;message=the "object_name" parameter does not match this cluck object. Got "invalid-name", expected "lock-name".
SECTION: cluck_client: UNLOCKING--cluckd server safe timeout
--- message: cluckd/LOCK object_name=unlocking-lock;pid=454191;serial=4;tag=10004;timeout=1767850594.704369633;transmission_report=failure
--- message: cluckd/UNLOCK object_name=unlocking-lock;pid=454191;serial=4;tag=10004
SECTION: cluck_client: UNLOCKING--cluckd server late timeout
--- message: cluckd/LOCK duration=3;object_name=unlocking-lock;pid=454191;serial=5;tag=10005;timeout=1767850596.728288047;transmission_report=failure;unlock_duration=3
SECTION: cluck_client: UNLOCKING--invalid object name
--- message: cluckd/LOCK duration=3;object_name=unlocking-lock;pid=454191;serial=6;tag=10006;timeout=1767850603.757047927;transmission_report=failure;unlock_duration=3
--- message: my_server:cluckd/INVALID command=UNLOCKING;message=the "object_name" parameter does not match this cluck object. Got "unknown-lock", expected "unlocking-lock".
SECTION: cluck_client: spurious TRANSMISSION_REPORT
--- message: cluckd/LOCK duration=3600;object_name=lock-name;pid=454191;serial=7;tag=10007;timeout=1767850613.280766663;transmission_report=failure;type=1;unlock_duration=3
--- message: .:communicatord/COMMANDS list=DATA,LOCKED,LOCK_FAILED,TRANSMISSION_REPORT,UNLOCKED,UNLOCKING
--- message: tester/READ size=219
--- message: cluckd/UNLOCK object_name=lock-name;pid=454191;serial=7;tag=10007
SECTION: cluck_client: TRANSMISSION_REPORT--could not send message to a cluck daemon
--- message: cluckd/LOCK duration=3;object_name=lock-not-received;pid=454191;serial=8;tag=10008;timeout=1767850606.185657055;transmission_report=failure;unlock_duration=3
SECTION: cluck_client_error: messenger required
SECTION: cluck_client_error: dispatcher required
SECTION: cluck_client_error: LOCK_FAILED--pretend the LOCK times out
--- message: cluckd/LOCK duration=3;object_name=lock-timeout;pid=454191;serial=9;tag=10011;timeout=1767850606.974603157;transmission_report=failure;unlock_duration=3
SECTION: cluck_client_error: LOCK_FAILED--invalid tag
--- message: cluckd/LOCK duration=3;object_name=lock-timeout;pid=454191;serial=10;tag=10012;timeout=1767850606.994083129;transmission_report=failure;unlock_duration=3
SECTION: cluck_client_error: LOCK_FAILED--other error (not timeout)
--- message: cluckd/LOCK duration=3;object_name=lock-timeout;pid=454191;serial=11;tag=10013;timeout=1767850607.011196074;transmission_report=failure;unlock_duration=3
SECTION: cluck_client_error: LOCK times out locally
--- message: cluckd/LOCK duration=3;object_name=lock-name;pid=454191;serial=12;tag=10014;timeout=1767850607.026634484;transmission_report=failure;unlock_duration=3
SECTION: cluck_client_error: LOCKED timing out locally (LOCK works, get replay, never UNLOCK...)
--- message: cluckd/LOCK duration=3;object_name=lock-name;pid=454191;serial=13;tag=10015;timeout=1767850617.045565707;transmission_report=failure;unlock_duration=3
--- message: .:communicatord/COMMANDS list=DATA,LOCKED,LOCK_FAILED,TRANSMISSION_REPORT,UNLOCKED,UNLOCKING
--- message: tester/READ size=219
--- message: not_lock
--- message: drain DATA
--- message: sleep 5s
--- message: cluckd/UNLOCK object_name=lock-name;pid=454191;serial=13;tag=10015
--- message: not_lock
--- message: not_read
--- message: drain UNLOCKED
SECTION: cluck_client_error: LOCKING timing out locally (LOCK+UNLOCK+UNLOCKING+sleep)
--- message: cluckd/LOCK duration=3600;object_name=lock-name;pid=454191;serial=14;tag=10016;timeout=1767850622.463266501;transmission_report=failure;unlock_duration=3
--- message: .:communicatord/COMMANDS list=DATA,LOCKED,LOCK_FAILED,TRANSMISSION_REPORT,UNLOCKED,UNLOCKING
--- message: tester/READ size=219
--- message: cluckd/UNLOCK object_name=lock-name;pid=454191;serial=14;tag=10016
SECTION: cluck_client_error: LOCKED with invalid tag
--- message: cluckd/LOCK object_name=lock-name;pid=454191;serial=15;tag=10017;timeout=1767850642.878599636;transmission_report=failure
--- message: --- test_case = [invalid_tag]....
--- message: --- test_case = EQUAL?! invalid tag....
SECTION: cluck_daemon_one_computer: verify cluckd
2026/01/08 05:37:20 unittester cluckd[454191/454191]: information: -------------------------------------------------- (in function "bool snaplogger::process_logger_options(advgetopt::getopt&, const std::string&, std::basic_ostream<char>&, bool)()") (options.cpp:792) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: information: cluckd v1.0.1 started. (in function "bool snaplogger::process_logger_options(advgetopt::getopt&, const std::string&, std::basic_ostream<char>&, bool)()") (options.cpp:798) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: added 1 connection, "interrupt", there is now 1 connection (including this one). (in function "bool ed::communicator::add_connection(ed::connection::pointer_t)()") (communicator.cpp:227) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: added 1 connection, "timer", there are now 2 connections (including this one). (in function "bool ed::communicator::add_connection(ed::connection::pointer_t)()") (communicator.cpp:227) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: added 1 connection, "messenger", there are now 3 connections (including this one). (in function "bool ed::communicator::add_connection(ed::connection::pointer_t)()") (communicator.cpp:227) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: added 1 connection, "communicator_tcp_stream", there are now 4 connections (including this one). (in function "bool ed::communicator::add_connection(ed::connection::pointer_t)()") (communicator.cpp:227) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: added 1 connection, "thread_done", there are now 5 connections (including this one). (in function "bool ed::communicator::add_connection(ed::connection::pointer_t)()") (communicator.cpp:227) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: information: --------------------------------- cluckd started. (in function "void cluck_daemon::cluckd::run()()") (cluckd.cpp:423) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: added 1 connection, "tcp_client_permanent_message_connection_impl::thread_signal_handler", there are now 6 connections (including this one). (in function "bool ed::communicator::add_connection(ed::connection::pointer_t)()") (communicator.cpp:227) {cluck_daemon_one_computer: verify cluckd}
--- message: --- expect REGISTER ---
2026/01/08 05:37:20 unittester cluckd[454191/454707]: information: entering thread "background tcp_client_permanent_message_connection for asynchronous connections" #454707. (in function "void snaplogger::{anonymous}::cppthread_logs(cppthread::log_level_t, const std::string&)()") (private_logger.cpp:118) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454707]: information: leaving thread "background tcp_client_permanent_message_connection for asynchronous connections" #454707 with status 0. (in function "void snaplogger::{anonymous}::cppthread_logs(cppthread::log_level_t, const std::string&)()") (private_logger.cpp:118) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: removing 1 connection, "tcp_client_permanent_message_connection_impl::thread_signal_handler", of 6 connections (including this one). (in function "bool ed::communicator::remove_connection(ed::connection::pointer_t)()") (communicator.cpp:260) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: added 1 connection, "tcp_client_permanent_message_connection_impl::messenger", there are now 6 connections (including this one). (in function "bool ed::communicator::add_connection(ed::connection::pointer_t)()") (communicator.cpp:227) {cluck_daemon_one_computer: verify cluckd}
--- message: REGISTER service=cluckd;version=1
--- message: --- expect COMMANDS ---
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "HELP". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: configuration warning: command "STATUS" was already inserted. Is it a "match_t::MATCH_CALLBACK"? If so then it is fine. If not, some of your callback functions may not get called. (in function "bool ed::dispatcher::get_commands(advgetopt::string_set_t&)()") (dispatcher.cpp:591) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: configuration warning: command "INVALID" was already inserted. Is it a "match_t::MATCH_CALLBACK"? If so then it is fine. If not, some of your callback functions may not get called. (in function "bool ed::dispatcher::get_commands(advgetopt::string_set_t&)()") (dispatcher.cpp:591) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: configuration warning: command "UNKNOWN" was already inserted. Is it a "match_t::MATCH_CALLBACK"? If so then it is fine. If not, some of your callback functions may not get called. (in function "bool ed::dispatcher::get_commands(advgetopt::string_set_t&)()") (dispatcher.cpp:591) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "READY my_address=127.0.0.1". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
--- message: <:cluckd COMMANDS list=ABSOLUTELY,ACTIVATE_LOCK,ADD_TICKET,ALIVE,CLOCK_STABLE,CLUSTER_DOWN,CLUSTER_UP,DISCONNECTED,DROP_TICKET,FLUID_SETTINGS_DEFAULT_VALUE,FLUID_SETTINGS_DELETED,FLUID_SETTINGS_OPTIONS,FLUID_SETTINGS_READY,FLUID_SETTINGS_REGISTERED,FLUID_SETTINGS_UPDATED,FLUID_SETTINGS_VALUE,FLUID_SETTINGS_VALUE_UPDATED,GET_MAX_TICKET,HANGUP,HELP,INFO,INVALID,LEAK,LIST_TICKETS,LOCK,LOCK_ACTIVATED,LOCK_ENTERED,LOCK_ENTERING,LOCK_EXITING,LOCK_FAILED,LOCK_LEADERS,LOCK_STARTED,LOCK_STATUS,LOCK_TICKETS,LOG_ROTATE,MAX_TICKET,QUITTING,READY,RESTART,SERVICE_UNAVAILABLE,STATUS,STOP,TICKET_ADDED,TICKET_READY,UNKNOWN,UNLOCK
--- message: --- expect SERVICE_STATUS ---
--- message: <:cluckd SERVICE_STATUS service=fluid_settings
--- message: --- expect CLOCK_STATUS ---
--- message: <:cluckd CLOCK_STATUS cache=no
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "STATUS cache=no;server=unittester;service=fluid_settings;status=up;up_since=1767850640.413141782". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
--- message: --- expect FLUID_SETTINGS_LISTEN ---
--- message: <:cluckd fluid_settings/FLUID_SETTINGS_LISTEN cache="no;reply";names=cluckd::server-name
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "<unittester:website unittester:cluckd/LOCK duration=15;object_name=early_lock;pid=10203;tag=15045;timeout=1767850700.413831564". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
--- message: --- expect CLUSTER_STATUS ---
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: caching LOCK message for "early_lock" (15045) as the cluck system is not yet considered ready. (in function "void cluck_daemon::cluckd::msg_lock(ed::message&)()") (cluckd.cpp:2865) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "UNLOCK object_name=too_soon;pid=431;tag=11104". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: error: received an UNLOCK when cluckd is not ready to receive lock related messages. (in function "void cluck_daemon::cluckd::msg_unlock(ed::message&)()") (cluckd.cpp:4233) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "unittester:cluckd/CLOCK_STABLE cache=no;clock_resolution=verified". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "unittester:cluckd/FLUID_SETTINGS_REGISTERED". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "unittester:cluckd/FLUID_SETTINGS_VALUE_UPDATED message=current value;name=cluckd::server-name;value=this_very_server". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "unittester:cluckd/FLUID_SETTINGS_READY errcnt=31". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "<unittester:website unittester:cluckd/LOCK_STATUS". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
--- message: <:cluckd communicatord/CLUSTER_STATUS
--- message: --- wait for message NO_LOCK ---
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: not considered ready: no leaders. (in function "bool cluck_daemon::cluckd::is_daemon_ready() const()") (cluckd.cpp:499) {cluck_daemon_one_computer: verify cluckd}
--- message: <:cluckd unittester:website/NO_LOCK cache=no
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "unittester:cluckd/CLUSTER_UP neighbors_count=1". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
--- message: --- wait for message LOCK_LEADERS ---
2026/01/08 05:37:20 unittester cluckd[454191/454191]: information: cluster is up with 1 neighbors, attempt an election then check for leaders by sending a LOCK_STARTED message. (in function "void cluck_daemon::cluckd::msg_cluster_up(ed::message&)()") (cluckd.cpp:2550) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: warning: election status = add leader(s)... 1 computers and 1 leaders. (in function "void cluck_daemon::cluckd::election_status()()") (cluckd.cpp:1170) {cluck_daemon_one_computer: verify cluckd}
--- message: <:cluckd */LOCK_LEADERS election_date=1767850640.475296352;leader0=14|295574486|127.0.0.1|454191|unittester
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: Attempting to lock "early_lock" (15045) on "unittester/10203" for "unittester/website" (timeout: 1767850700.413831564). (in function "cluck_daemon::ticket::ticket(cluck_daemon::cluckd*, cluck_daemon::messenger::pointer_t, const std::string&, ed::dispatcher_match::tag_t, const std::string&, cluck::timeout_t, cluck::timeout_t, const std::string&, const std::string&)()") (ticket.cpp:384) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "<unittester:website unittester:cluckd/INFO mode=info". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
--- message: --- wait for message LOCK_STARTED ---
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "<unittester:website unittester:cluckd/LOCK duration=10;object_name=lock1;pid=123;tag=505;timeout=1000". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: warning: lock on "lock1" (505)/ "123" timed out before we could start the locking process. (in function "void cluck_daemon::cluckd::msg_lock(ed::message&)()") (cluckd.cpp:2780) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "UNLOCK object_name=bad_pid;pid=-431;tag=11104". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
--- message: <:cluckd */LOCK_STARTED election_date=1767850640.475296352;leader0=14|295574486|127.0.0.1|454191|unittester;lock_id=14|295574486|127.0.0.1|454191|unittester;server_name=unittester;start_time=1767850640.318289494
2026/01/08 05:37:20 unittester cluckd[454191/454191]: noisy error: cluckd::get_parameters(): invalid pid specified for a lock (-431); it must be a positive decimal number. (in function "bool cluck_daemon::cluckd::get_parameters(const ed::message&, std::string*, ed::dispatcher_match::tag_t*, pid_t*, cluck::timeout_t*, std::string*, std::string*)()") (cluckd.cpp:2053) {cluck_daemon_one_computer: verify cluckd}
--- message: --- wait for message LOCK_READY ---
--- message: <:cluckd ./LOCK_READY cache=no
--- message: --- expect LOCKED (early) ---
--- message: <:cluckd unittester:website/LOCKED object_name=early_lock;tag=15045;timeout_date=1767850655.478159618;unlocked_date=1767850670.478159618
--- message: --- wait for message CLUCKD_STATUS (without tickets)....
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "<unittester:website unittester:cluckd/UNLOCK object_name=early_lock;pid=10203;tag=15045". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
--- message: <:cluckd unittester:website/CLUCKD_STATUS status={"computers":[{"connected":true,"id":"14|295574486|127.0.0.1|454191|unittester","ip":"127.0.0.1","leader":0,"name":"unittester"}],"daemon_ready":true,"id":"14|295574486|127.0.0.1|454191|unittester","ip":"127.0.0.1","leaders_count":1,"neighbors_count":1,"neighbors_quorum":1}
--- message: --- verify message CLUCKD_STATUS: {"computers":[{"connected":true,"id":"14|295574486|127.0.0.1|454191|unittester","ip":"127.0.0.1","leader":0,"name":"unittester"}],"daemon_ready":true,"id":"14|295574486|127.0.0.1|454191|unittester","ip":"127.0.0.1","leaders_count":1,"neighbors_count":1,"neighbors_quorum":1}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: Unlock on "early_lock" (15045) with key "unittester/10203". (in function "void cluck_daemon::ticket::drop_ticket()()") (ticket.cpp:815) {cluck_daemon_one_computer: verify cluckd}
--- message: --- wait for message LOCK_FAILED ---
--- message: <:cluckd unittester:website/LOCK_FAILED description=LOCK timeout date is already in the past;error=timedout;key=unittester/123;object_name=lock1;tag=505
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "<unittester:website unittester:cluckd/LOCK duration=10;object_name=lock1;pid=-9123;tag=505;timeout=1767850700.499247258". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
--- message: --- expect UNLOCKED (early) ---
2026/01/08 05:37:20 unittester cluckd[454191/454191]: noisy error: cluckd::get_parameters(): invalid pid specified for a lock (-9123); it must be a positive decimal number. (in function "bool cluck_daemon::cluckd::get_parameters(const ed::message&, std::string*, ed::dispatcher_match::tag_t*, pid_t*, cluck::timeout_t*, std::string*, std::string*)()") (cluckd.cpp:2053) {cluck_daemon_one_computer: verify cluckd}
--- message: <:cluckd unittester:website/UNLOCKED object_name=early_lock;tag=15045;unlocked_date=1767850640.497424103
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "<unittester:website unittester:cluckd/LOCK duration=10;object_name=lock1;pid=123;tag=505;timeout=1767850700.499247258". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: Attempting to lock "lock1" (505) on "unittester/123" for "unittester/website" (timeout: 1767850700.499247258). (in function "cluck_daemon::ticket::ticket(cluck_daemon::cluckd*, cluck_daemon::messenger::pointer_t, const std::string&, ed::dispatcher_match::tag_t, const std::string&, cluck::timeout_t, cluck::timeout_t, const std::string&, const std::string&)()") (ticket.cpp:384) {cluck_daemon_one_computer: verify cluckd}
--- message: --- expect LOCKED ---
--- message: <:cluckd unittester:website/LOCKED object_name=lock1;tag=505;timeout_date=1767850650.504159765;unlocked_date=1767850660.504159765
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "<unittester:website unittester:cluckd/LOCK duration=10;object_name=lock1;pid=123;tag=505;timeout=1767850700.499247258". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: error: a ticket has the same object name "lock1" (505) and entering key "unittester/123". (in function "void cluck_daemon::cluckd::msg_lock(ed::message&)()") (cluckd.cpp:2995) {cluck_daemon_one_computer: verify cluckd}
--- message: send LOCK_LEADERS
--- message: --- wait for message LOCK_FAILED (duplicate) ---
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "<rc1:cluckd unittester:cluckd/LOCK_LEADERS election_date=1767850640.475296352;leader0=14|295574486|127.0.0.1|454191|unittester". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
--- message: <:cluckd unittester:website/LOCK_FAILED description=LOCK called with the same ticket object_name and entering_key;error=duplicate;key=unittester/123;object_name=lock1;tag=505
--- message: --- wait for message LOCK_FAILED (duplicate ADD_TICKET) ---
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "<rc1:cluckd unittester:cluckd/ADD_TICKET key=00000001/unittester/123;object_name=lock1;tag=505;timeout=1767850700.499247258". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: error: an existing ticket has the same object name "lock1" (505) and key "00000001/unittester/123". (in function "void cluck_daemon::cluckd::msg_add_ticket(ed::message&)()") (cluckd.cpp:2273) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: error: could not create the flags directory "/var/lib/communicator/flags"; errno: 13, Permission denied (in function "std::string communicator::{anonymous}::get_path_to_flag_files()()") (flags.cpp:156) {cluck_daemon_one_computer: verify cluckd}
--- message: <:cluckd rc1:cluckd/LOCK_FAILED description=ADD_TICKET called with an existing ticket name and key;error=duplicate;key=00000001/unittester/123;object_name=lock1;tag=505
2026/01/08 05:37:20 unittester cluckd[454191/454191]: error: flag output filename could not be generated -- 1969/12/31 23:59:59: flag(cluckd/ticket/invalid-algorithm):/home/alexis/snapwebsites/snapcpp/contrib/cluck/daemon/cluckd.cpp:void cluck_daemon::cluckd::msg_add_ticket(ed::message&):2295: msg_add_ticket() received a second call to add the same ticket. This either means there is a bug in our algorithm or there is a hacker sending us messages trying to create invalid tickets. (priority: 25, manual-down, count: 1) (in function "bool communicator::flag::save()()") (flags.cpp:995) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "<unittester:website unittester:cluckd/INFO mode=debug". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
--- message: --- wait for message CLUCKD_STATUS (with ticket)....
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "<another_server:website unittester:cluckd/UNLOCK object_name=lock1;pid=435;tag=11104". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: major: UNLOCK could not find key "another_server/435" in object "lock1". (in function "void cluck_daemon::cluckd::msg_unlock(ed::message&)()") (cluckd.cpp:4302) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: trace: dispatch message "<unittester:website unittester:cluckd/UNLOCK object_name=unknown_lock;pid=435;tag=11104". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:20 unittester cluckd[454191/454191]: warning: UNLOCK could not find object "unknown_lock". (in function "void cluck_daemon::cluckd::msg_unlock(ed::message&)()") (cluckd.cpp:4313) {cluck_daemon_one_computer: verify cluckd}
--- message: <:cluckd unittester:website/CLUCKD_STATUS status={"computers":[{"connected":true,"id":"14|295574486|127.0.0.1|454191|unittester","ip":"127.0.0.1","leader":0,"name":"unittester"}],"daemon_ready":true,"id":"14|295574486|127.0.0.1|454191|unittester","ip":"127.0.0.1","leaders_count":1,"neighbors_count":1,"neighbors_quorum":1,"tickets":"added_ticket=true|added_ticket_quorum=true|entering_key=unittester/123|get_max_ticket=true|lock_duration=10|lock_failed=none|lock_timeout_date=1767850650.504159765|locked=true|object_name=lock1|obtention_timeout=1767850700.499247258|our_ticket=1|owner=unittester|serial=2|server_name=unittester|service_name=website|tag=505|ticket_key=00000001/unittester/123|ticket_ready=true|unlock_duration=10\\n"}
--- message: --- verify message CLUCKD_STATUS: {"computers":[{"connected":true,"id":"14|295574486|127.0.0.1|454191|unittester","ip":"127.0.0.1","leader":0,"name":"unittester"}],"daemon_ready":true,"id":"14|295574486|127.0.0.1|454191|unittester","ip":"127.0.0.1","leaders_count":1,"neighbors_count":1,"neighbors_quorum":1,"tickets":"added_ticket=true|added_ticket_quorum=true|entering_key=unittester/123|get_max_ticket=true|lock_duration=10|lock_failed=none|lock_timeout_date=1767850650.504159765|locked=true|object_name=lock1|obtention_timeout=1767850700.499247258|our_ticket=1|owner=unittester|serial=2|server_name=unittester|service_name=website|tag=505|ticket_key=00000001/unittester/123|ticket_ready=true|unlock_duration=10\n"}
--- message: --- timeout: 1767850700.499247258
--- message: --- expect UNLOCKING ---
2026/01/08 05:37:31 unittester cluckd[454191/454191]: important: Lock on "lock1" (505) with key "unittester/123" timed out its lock allowed time. (in function "void cluck_daemon::ticket::lock_failed(const std::string&)()") (ticket.cpp:976) {cluck_daemon_one_computer: verify cluckd}
--- message: <:cluckd unittester:website/UNLOCKING error=timedout;object_name=lock1;tag=505
--- message: --- expect UNLOCKED ---
2026/01/08 05:37:41 unittester cluckd[454191/454191]: important: Lock on "lock1" (505) with key "unittester/123" timed out its unlocking allowed time. (in function "void cluck_daemon::ticket::lock_failed(const std::string&)()") (ticket.cpp:1009) {cluck_daemon_one_computer: verify cluckd}
--- message: <:cluckd unittester:website/UNLOCKED error=timedout;object_name=lock1;tag=505
--- message: --- Sending QUITTING and draining messages...
--- message: --- Wait while draining messages...
--- message: --- Script is done...
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: dispatch message "<unittester:website unittester:cluckd/QUITTING". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: removing 1 connection, "communicator_tcp_stream", of 6 connections (including this one). (in function "bool ed::communicator::remove_connection(ed::connection::pointer_t)()") (communicator.cpp:260) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: removing 1 connection, "tcp_client_permanent_message_connection_impl::messenger", of 5 connections (including this one). (in function "bool ed::communicator::remove_connection(ed::connection::pointer_t)()") (communicator.cpp:260) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: removing 1 connection, "messenger", of 4 connections (including this one). (in function "bool ed::communicator::remove_connection(ed::connection::pointer_t)()") (communicator.cpp:260) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: removing 1 connection, "interrupt", of 3 connections (including this one). (in function "bool ed::communicator::remove_connection(ed::connection::pointer_t)()") (communicator.cpp:260) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: removing 1 connection, "timer", of 2 connections (including this one). (in function "bool ed::communicator::remove_connection(ed::connection::pointer_t)()") (communicator.cpp:260) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: removing 1 connection, "thread_done", of 1 connection (including this one). (in function "bool ed::communicator::remove_connection(ed::connection::pointer_t)()") (communicator.cpp:260) {cluck_daemon_one_computer: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: unimportant: exiting nested diagnostic (in function "virtual snaplogger::nested_diagnostic::~nested_diagnostic()()") (nested_diagnostic.cpp:66) {cluck_daemon_one_computer: verify cluckd}
SECTION: cluck_daemon_two_computers: verify cluckd
2026/01/08 05:37:41 unittester cluckd[454191/454191]: unimportant: entering nested diagnostic (in function "snaplogger::nested_diagnostic::nested_diagnostic(const std::string&, bool)()") (nested_diagnostic.cpp:53) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: information: -------------------------------------------------- (in function "bool snaplogger::process_logger_options(advgetopt::getopt&, const std::string&, std::basic_ostream<char>&, bool)()") (options.cpp:792) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: information: cluckd v1.0.1 started. (in function "bool snaplogger::process_logger_options(advgetopt::getopt&, const std::string&, std::basic_ostream<char>&, bool)()") (options.cpp:798) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: added 1 connection, "interrupt", there is now 1 connection (including this one). (in function "bool ed::communicator::add_connection(ed::connection::pointer_t)()") (communicator.cpp:227) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: added 1 connection, "timer", there are now 2 connections (including this one). (in function "bool ed::communicator::add_connection(ed::connection::pointer_t)()") (communicator.cpp:227) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: added 1 connection, "messenger", there are now 3 connections (including this one). (in function "bool ed::communicator::add_connection(ed::connection::pointer_t)()") (communicator.cpp:227) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: added 1 connection, "communicator_tcp_stream", there are now 4 connections (including this one). (in function "bool ed::communicator::add_connection(ed::connection::pointer_t)()") (communicator.cpp:227) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: added 1 connection, "thread_done", there are now 5 connections (including this one). (in function "bool ed::communicator::add_connection(ed::connection::pointer_t)()") (communicator.cpp:227) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: information: --------------------------------- cluckd started. (in function "void cluck_daemon::cluckd::run()()") (cluckd.cpp:423) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: added 1 connection, "tcp_client_permanent_message_connection_impl::thread_signal_handler", there are now 6 connections (including this one). (in function "bool ed::communicator::add_connection(ed::connection::pointer_t)()") (communicator.cpp:227) {cluck_daemon_two_computers: verify cluckd}
--- message: --- expect REGISTER ---
2026/01/08 05:37:41 unittester cluckd[454191/454709]: information: entering thread "background tcp_client_permanent_message_connection for asynchronous connections" #454709. (in function "void snaplogger::{anonymous}::cppthread_logs(cppthread::log_level_t, const std::string&)()") (private_logger.cpp:118) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454709]: information: leaving thread "background tcp_client_permanent_message_connection for asynchronous connections" #454709 with status 0. (in function "void snaplogger::{anonymous}::cppthread_logs(cppthread::log_level_t, const std::string&)()") (private_logger.cpp:118) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: removing 1 connection, "tcp_client_permanent_message_connection_impl::thread_signal_handler", of 6 connections (including this one). (in function "bool ed::communicator::remove_connection(ed::connection::pointer_t)()") (communicator.cpp:260) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: added 1 connection, "tcp_client_permanent_message_connection_impl::messenger", there are now 6 connections (including this one). (in function "bool ed::communicator::add_connection(ed::connection::pointer_t)()") (communicator.cpp:227) {cluck_daemon_two_computers: verify cluckd}
--- message: REGISTER service=cluckd;version=1
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: dispatch message "HELP". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_two_computers: verify cluckd}
--- message: --- expect COMMANDS ---
2026/01/08 05:37:41 unittester cluckd[454191/454191]: configuration warning: command "STATUS" was already inserted. Is it a "match_t::MATCH_CALLBACK"? If so then it is fine. If not, some of your callback functions may not get called. (in function "bool ed::dispatcher::get_commands(advgetopt::string_set_t&)()") (dispatcher.cpp:591) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: configuration warning: command "INVALID" was already inserted. Is it a "match_t::MATCH_CALLBACK"? If so then it is fine. If not, some of your callback functions may not get called. (in function "bool ed::dispatcher::get_commands(advgetopt::string_set_t&)()") (dispatcher.cpp:591) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: configuration warning: command "UNKNOWN" was already inserted. Is it a "match_t::MATCH_CALLBACK"? If so then it is fine. If not, some of your callback functions may not get called. (in function "bool ed::dispatcher::get_commands(advgetopt::string_set_t&)()") (dispatcher.cpp:591) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: dispatch message "READY my_address=127.0.0.1". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_two_computers: verify cluckd}
--- message: <:cluckd COMMANDS list=ABSOLUTELY,ACTIVATE_LOCK,ADD_TICKET,ALIVE,CLOCK_STABLE,CLUSTER_DOWN,CLUSTER_UP,DISCONNECTED,DROP_TICKET,FLUID_SETTINGS_DEFAULT_VALUE,FLUID_SETTINGS_DELETED,FLUID_SETTINGS_OPTIONS,FLUID_SETTINGS_READY,FLUID_SETTINGS_REGISTERED,FLUID_SETTINGS_UPDATED,FLUID_SETTINGS_VALUE,FLUID_SETTINGS_VALUE_UPDATED,GET_MAX_TICKET,HANGUP,HELP,INFO,INVALID,LEAK,LIST_TICKETS,LOCK,LOCK_ACTIVATED,LOCK_ENTERED,LOCK_ENTERING,LOCK_EXITING,LOCK_FAILED,LOCK_LEADERS,LOCK_STARTED,LOCK_STATUS,LOCK_TICKETS,LOG_ROTATE,MAX_TICKET,QUITTING,READY,RESTART,SERVICE_UNAVAILABLE,STATUS,STOP,TICKET_ADDED,TICKET_READY,UNKNOWN,UNLOCK
--- message: --- expect SERVICE_STATUS ---
--- message: <:cluckd SERVICE_STATUS service=fluid_settings
--- message: --- service name in STATUS message is: fluid_settings
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: dispatch message "STATUS cache=no;server=two;server_name=two;service=remote communicator (in);status=up;up_since=1767850661.595539784". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_two_computers: verify cluckd}
--- message: --- expect CLOCK_STATUS ---
--- message: <:cluckd CLOCK_STATUS cache=no
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: dispatch message "STATUS cache=no;server=unittester;service=fluid_settings;status=up;up_since=1767850661.597520326". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_two_computers: verify cluckd}
--- message: <:cluckd communicatord/CLUSTER_STATUS
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: dispatch message "<unittester:website unittester:cluckd/LOCK_STATUS". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_two_computers: verify cluckd}
--- message: --- wait for message NO_LOCK....
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: dispatch message "unittester:cluckd/CLOCK_STABLE cache=no;clock_resolution=verified". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_two_computers: verify cluckd}
--- message: <:cluckd unittester:website/NO_LOCK cache=no
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: dispatch message "unittester:cluckd/CLUSTER_UP neighbors_count=2". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_two_computers: verify cluckd}
--- message: --- wait for message LOCK_STARTED (initial)....
2026/01/08 05:37:41 unittester cluckd[454191/454191]: information: cluster is up with 2 neighbors, attempt an election then check for leaders by sending a LOCK_STARTED message. (in function "void cluck_daemon::cluckd::msg_cluster_up(ed::message&)()") (cluckd.cpp:2550) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: not considered ready: no leaders. (in function "bool cluck_daemon::cluckd::is_daemon_ready() const()") (cluckd.cpp:499) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: dispatch message "<unittester:website unittester:cluckd/INFO mode=info". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_two_computers: verify cluckd}
--- message: <:cluckd */LOCK_STARTED lock_id=10|3412416547|127.0.0.1|454191|unittester;server_name=unittester;start_time=1767850661.532361236
--- message: --- verify message LOCK_STARTED (initial)....
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: not considered ready: no leaders. (in function "bool cluck_daemon::cluckd::is_daemon_ready() const()") (cluckd.cpp:499) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: dispatch message "<two:cluckd unittester:cluckd/LOCK_STARTED lock_id=ignored;server_name=unittester;start_time=1767850661.608039191". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_two_computers: verify cluckd}
--- message: --- wait for message CLUCKD_STATUS (without tickets)....
--- message: <:cluckd unittester:website/CLUCKD_STATUS status={"computers":[{"connected":true,"id":"10|3412416547|127.0.0.1|454191|unittester","ip":"127.0.0.1","name":"unittester"}],"daemon_ready":false,"id":"10|3412416547|127.0.0.1|454191|unittester","ip":"127.0.0.1","leaders_count":0,"neighbors_count":2,"neighbors_quorum":2}
--- message: --- verify message CLUCKD_STATUS: {"computers":[{"connected":true,"id":"10|3412416547|127.0.0.1|454191|unittester","ip":"127.0.0.1","name":"unittester"}],"daemon_ready":false,"id":"10|3412416547|127.0.0.1|454191|unittester","ip":"127.0.0.1","leaders_count":0,"neighbors_count":2,"neighbors_quorum":2}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: dispatch message "<two:cluckd unittester:cluckd/LOCK_STARTED lock_id=invalid;server_name=two;start_time=1767850661.608856955". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: error: received a computer id which does not have exactly 5 parts: "invalid". (in function "bool cluck_daemon::computer::set_id(const std::string&)()") (computer.cpp:167) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: dispatch message "<two:cluckd unittester:cluckd/LOCK_STARTED lock_id=14|573729040|172.1.2.3|164671|two;server_name=two;start_time=1767850661.609561081". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: warning: election status = add leader(s)... 2 computers and 2 leaders. (in function "void cluck_daemon::cluckd::election_status()()") (cluckd.cpp:1170) {cluck_daemon_two_computers: verify cluckd}
--- message: <:cluckd */LOCK_LEADERS election_date=1767850661.652668576;leader0=10|3412416547|127.0.0.1|454191|unittester;leader1=14|573729040|172.1.2.3|164671|two
--- message: --- wait for message LOCK_READY....
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: dispatch message "<unittester:website unittester:cluckd/LOCK duration=10;object_name=lock1;pid=123;tag=505;timeout=1000". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: warning: lock on "lock1" (505)/ "123" timed out before we could start the locking process. (in function "void cluck_daemon::cluckd::msg_lock(ed::message&)()") (cluckd.cpp:2780) {cluck_daemon_two_computers: verify cluckd}
--- message: <:cluckd ./LOCK_READY cache=no
--- message: --- wait for message LOCK_STARTED (reply_a)....
--- message: <:cluckd two:cluckd/LOCK_STARTED election_date=1767850661.652668576;leader0=10|3412416547|127.0.0.1|454191|unittester;leader1=14|573729040|172.1.2.3|164671|two;lock_id=10|3412416547|127.0.0.1|454191|unittester;server_name=unittester;start_time=1767850661.532361236
--- message: --- wait for message LOCK_FAILED (timedout)....
--- message: <:cluckd unittester:website/LOCK_FAILED description=LOCK timeout date is already in the past;error=timedout;key=unittester/123;object_name=lock1;tag=505
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: dispatch message "<unittester:website unittester:cluckd/LOCK duration=10;object_name=lock1;pid=123;tag=505;timeout=1767850721.699692442". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_two_computers: verify cluckd}
--- message: --- wait for message LOCK_ENTERING....
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: Attempting to lock "lock1" (505) on "unittester/123" for "unittester/website" (timeout: 1767850721.699692442). (in function "cluck_daemon::ticket::ticket(cluck_daemon::cluckd*, cluck_daemon::messenger::pointer_t, const std::string&, ed::dispatcher_match::tag_t, const std::string&, cluck::timeout_t, cluck::timeout_t, const std::string&, const std::string&)()") (ticket.cpp:384) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: dispatch message "<unittester:website unittester:cluckd/LOCK duration=10;object_name=lock1;pid=123;tag=505;timeout=1767850721.699692442". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_two_computers: verify cluckd}
--- message: <:cluckd two:cluckd/LOCK_ENTERING duration=10;key=unittester/123;object_name=lock1;serial=1;source=unittester/website;tag=505;timeout=1767850721.699692442
2026/01/08 05:37:41 unittester cluckd[454191/454191]: error: an entering ticket has the same object name "lock1" (505) and entering key "unittester/123". (in function "void cluck_daemon::cluckd::msg_lock(ed::message&)()") (cluckd.cpp:2921) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: dispatch message "<unittester:website unittester:cluckd/LOCK duration=10;object_name=lock1;pid=123;serial=1;tag=505;timeout=1767850721.699692442". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_two_computers: verify cluckd}
--- message: --- wait for message LOCK_FAILED (duplicate)....
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: dispatch message "<unittester:cluckd unittester:cluckd/LOCK_ENTERED key=unittester/123;object_name=lock1;tag=505". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_two_computers: verify cluckd}
--- message: <:cluckd unittester:website/LOCK_FAILED description=LOCK called with the same entering ticket object_name and entering_key;error=duplicate;key=unittester/123;object_name=lock1;tag=505
--- message: --- wait for message GET_MAX_TICKET....
--- message: <:cluckd two:cluckd/GET_MAX_TICKET key=unittester/123;object_name=lock1;tag=505
--- message: --- wait for message ADD_TICKET....
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: dispatch message "<two:cluckd unittester:cluckd/MAX_TICKET key=unittester/123;object_name=lock1;tag=505;ticket_id=111". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_two_computers: verify cluckd}
--- message: <:cluckd two:cluckd/ADD_TICKET key=00000070/unittester/123;object_name=lock1;tag=505;timeout=1767850721.699692442
--- message: --- wait for message LOCK_EXITING....
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: dispatch message "<two:cluckd unittester:cluckd/TICKET_ADDED key=00000070/unittester/123;object_name=lock1;tag=505". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_two_computers: verify cluckd}
--- message: <:cluckd two:cluckd/LOCK_EXITING key=unittester/123;object_name=lock1;tag=505
--- message: --- wait for message TICKET_READY....
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: dispatch message "<two:cluckd unittester:cluckd/TICKET_READY key=00000070/unittester/123;object_name=lock1;tag=505". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_two_computers: verify cluckd}
--- message: <:cluckd two:cluckd/TICKET_READY key=00000070/unittester/123;object_name=lock1;tag=505
--- message: --- wait for message ACTIVATE_LOCK....
--- message: <:cluckd two:cluckd/ACTIVATE_LOCK key=00000070/unittester/123;object_name=lock1;tag=505
--- message: --- wait for message LOCKED....
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: dispatch message "<two:cluckd unittester:cluckd/ACTIVATE_LOCK key=00000070/unittester/123;object_name=lock1;tag=505". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_two_computers: verify cluckd}
--- message: <:cluckd unittester:website/LOCKED object_name=lock1;tag=505;timeout_date=1767850671.731516875;unlocked_date=1767850681.731516875
--- message: --- wait for message LOCK_ACTIVATED....
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: dispatch message "<unittester:website unittester:cluckd/INFO mode=debug". (in function "bool ed::dispatcher::dispatch(ed::message&)()") (dispatcher.cpp:438) {cluck_daemon_two_computers: verify cluckd}
--- message: <:cluckd two:cluckd/LOCK_ACTIVATED key=00000070/unittester/123;object_name=lock1;other_key=00000070/unittester/123;tag=505
--- message: --- wait for message CLUCKD_STATUS (with ticket)....
--- message: <:cluckd unittester:website/CLUCKD_STATUS status={"computers":[{"connected":true,"id":"14|573729040|172.1.2.3|164671|two","ip":"172.1.2.3","leader":1,"name":"two"},{"connected":true,"id":"10|3412416547|127.0.0.1|454191|unittester","ip":"127.0.0.1","leader":0,"name":"unittester"}],"daemon_ready":true,"id":"10|3412416547|127.0.0.1|454191|unittester","ip":"127.0.0.1","leaders_count":2,"neighbors_count":2,"neighbors_quorum":2,"tickets":"added_ticket=true|added_ticket_quorum=true|entering_key=unittester/123|get_max_ticket=true|lock_duration=10|lock_failed=none|lock_timeout_date=1767850671.731516875|locked=true|object_name=lock1|obtention_timeout=1767850721.699692442|our_ticket=112|owner=unittester|serial=1|server_name=unittester|service_name=website|tag=505|ticket_key=00000070/unittester/123|ticket_ready=true|unlock_duration=10\\n"}
--- message: --- verify message CLUCKD_STATUS: {"computers":[{"connected":true,"id":"14|573729040|172.1.2.3|164671|two","ip":"172.1.2.3","leader":1,"name":"two"},{"connected":true,"id":"10|3412416547|127.0.0.1|454191|unittester","ip":"127.0.0.1","leader":0,"name":"unittester"}],"daemon_ready":true,"id":"10|3412416547|127.0.0.1|454191|unittester","ip":"127.0.0.1","leaders_count":2,"neighbors_count":2,"neighbors_quorum":2,"tickets":"added_ticket=true|added_ticket_quorum=true|entering_key=unittester/123|get_max_ticket=true|lock_duration=10|lock_failed=none|lock_timeout_date=1767850671.731516875|locked=true|object_name=lock1|obtention_timeout=1767850721.699692442|our_ticket=112|owner=unittester|serial=1|server_name=unittester|service_name=website|tag=505|ticket_key=00000070/unittester/123|ticket_ready=true|unlock_duration=10\n"}
2026/01/08 05:37:41 unittester cluckd[454191/454708]: fatal: thread internal_run() got exception: "event_dispatcher_exception: /home/alexis/snapwebsites/snapcpp/contrib/cluck/tests/rprtr/cluck_daemon_test_two_computers.rprtr:771: message expected parameter "status", set to "{"computers":[{"connected":true,"id":"14|573729040|172.1.2.3|164671|two","ip":"172.1.2.3","leader":1,"name":"two"},{"connected":true,"id":"10|3412416547|127.0.0.1|454191|unittester","ip":"127.0.0.1","leader":0,"name":"unittester"}],"daemon_ready":true,"id":"10|3412416547|127.0.0.1|454191|unittester","ip":"127.0.0.1","leaders_count":2,"neighbors_count":2,"neighbors_quorum":2,"tickets":"added_ticket=true|added_ticket_quorum=true|entering_key=unittester/123|get_max_ticket=true|lock_duration=10|lock_failed=none|lock_timeout_date=1767850671.731516875|locked=true|object_name=lock1|obtention_timeout=1767850721.699692442|our_ticket=112|owner=unittester|serial=1|server_name=unittester|service_name=website|tag=505|ticket_key=00000070/unittester/123|ticket_ready=true|unlock_duration=10\\n"}", to match regex "\\{"computers":\\[\\{"connected":true,"id":"10\\|3412416547\\|127\\.0\\.0\\.1\\|454191\\|unittester","ip":"127\\.0\\.0\\.1","leader":0,"name":"unittester"\\},\\{"connected":true,"id":"14\\|573729040\\|172\\.1\\.2\\.3\\|164671\\|two","ip":"172\\.1\\.2\\.3","leader":1,"name":"two"\\}\\],"daemon_ready":true,"id":"10\\|3412416547\\|127\\.0\\.0\\.1\\|454191\\|unittester","ip":"127\\.0\\.0\\.1","leaders_count":2,"neighbors_count":2,"neighbors_quorum":2,"tickets":"added_ticket=true\\|added_ticket_quorum=true\\|entering_key=monster\\/123\\|get_max_ticket=true\\|lock_duration=10\\|lock_failed=none\\|lock_timeout_date=[0-9]+(\\.[0-9]+)?\\|locked=true\\|object_name=lock1\\|obtention_timeout=[0-9]+(\\.[0-9]+)?\\|our_ticket=112\\|owner=monster\\|serial=1\\|server_name=monster\\|service_name=website\\|tag=505\\|ticket_key=00000070\\/monster\\/123\\|ticket_ready=true\\|unlock_duration=10\\\\n"\\}".", exiting thread now. (in function "void snaplogger::{anonymous}::cppthread_logs(cppthread::log_level_t, const std::string&)()") (private_logger.cpp:118) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: removing 1 connection, "thread_done", of 6 connections (including this one). (in function "bool ed::communicator::remove_connection(ed::connection::pointer_t)()") (communicator.cpp:260) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: removing 1 connection, "communicator_tcp_stream", of 5 connections (including this one). (in function "bool ed::communicator::remove_connection(ed::connection::pointer_t)()") (communicator.cpp:260) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: removing 1 connection, "tcp_client_permanent_message_connection_impl::messenger", of 4 connections (including this one). (in function "bool ed::communicator::remove_connection(ed::connection::pointer_t)()") (communicator.cpp:260) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: removing 1 connection, "messenger", of 3 connections (including this one). (in function "bool ed::communicator::remove_connection(ed::connection::pointer_t)()") (communicator.cpp:260) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: removing 1 connection, "interrupt", of 2 connections (including this one). (in function "bool ed::communicator::remove_connection(ed::connection::pointer_t)()") (communicator.cpp:260) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454708]: fatal: thread internal_leave() got exception: "event_dispatcher_exception: thread failed with leave status: 2", exiting thread now. (in function "void snaplogger::{anonymous}::cppthread_logs(cppthread::log_level_t, const std::string&)()") (private_logger.cpp:118) {cluck_daemon_two_computers: verify cluckd}
2026/01/08 05:37:41 unittester cluckd[454191/454191]: trace: removing 1 connection, "timer", of 1 connection (including this one). (in function "bool ed::communicator::remove_connection(ed::connection::pointer_t)()") (communicator.cpp:260) {cluck_daemon_two_computers: verify cluckd}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unittest is a Catch2 v3.8.0 host application.
Run with -? for options
-------------------------------------------------------------------------------
cluck_daemon_two_computers
cluck_daemon_two_computers: verify cluckd
-------------------------------------------------------------------------------
/home/alexis/snapwebsites/snapcpp/contrib/cluck/tests/catch_daemon.cpp:179
...............................................................................
/home/alexis/snapwebsites/snapcpp/contrib/cluck/tests/catch_daemon.cpp:269: FAILED:
CATCH_REQUIRE( s->get_exit_code() == 0 )
with expansion:
-1 == 0
terminate called after throwing an instance of 'ed::runtime_error'
what(): event_dispatcher_exception: /home/alexis/snapwebsites/snapcpp/contrib/cluck/tests/rprtr/cluck_daemon_test_two_computers.rprtr:771: message expected parameter "status", set to "{"computers":[{"connected":true,"id":"14|573729040|172.1.2.3|164671|two","ip":"172.1.2.3","leader":1,"name":"two"},{"connected":true,"id":"10|3412416547|127.0.0.1|454191|unittester","ip":"127.0.0.1","leader":0,"name":"unittester"}],"daemon_ready":true,"id":"10|3412416547|127.0.0.1|454191|unittester","ip":"127.0.0.1","leaders_count":2,"neighbors_count":2,"neighbors_quorum":2,"tickets":"added_ticket=true|added_ticket_quorum=true|entering_key=unittester/123|get_max_ticket=true|lock_duration=10|lock_failed=none|lock_timeout_date=1767850671.731516875|locked=true|object_name=lock1|obtention_timeout=1767850721.699692442|our_ticket=112|owner=unittester|serial=1|server_name=unittester|service_name=website|tag=505|ticket_key=00000070/unittester/123|ticket_ready=true|unlock_duration=10\n"}", to match regex "\{"computers":\[\{"connected":true,"id":"10\|3412416547\|127\.0\.0\.1\|454191\|unittester","ip":"127\.0\.0\.1","leader":0,"name":"unittester"\},\{"connected":true,"id":"14\|573729040\|172\.1\.2\.3\|164671\|two","ip":"172\.1\.2\.3","leader":1,"name":"two"\}\],"daemon_ready":true,"id":"10\|3412416547\|127\.0\.0\.1\|454191\|unittester","ip":"127\.0\.0\.1","leaders_count":2,"neighbors_count":2,"neighbors_quorum":2,"tickets":"added_ticket=true\|added_ticket_quorum=true\|entering_key=monster\/123\|get_max_ticket=true\|lock_duration=10\|lock_failed=none\|lock_timeout_date=[0-9]+(\.[0-9]+)?\|locked=true\|object_name=lock1\|obtention_timeout=[0-9]+(\.[0-9]+)?\|our_ticket=112\|owner=monster\|serial=1\|server_name=monster\|service_name=website\|tag=505\|ticket_key=00000070\/monster\/123\|ticket_ready=true\|unlock_duration=10\\n"\}".
Command terminated by signal 6
3.61user 2.28system 1:12.02elapsed 8%CPU (0avgtext+0avgdata 32448maxresident)k
0inputs+128outputs (0major+141776minor)pagefaults 0swaps
info: test logs were saved in: "../../BUILD/Debug/contrib/cluck/tests/tests.log".
error: test(s) failed.
Build, Tests/Coverage, or Upload failed on Thu Jan 8 05:37:42 AM UTC 2026.
Back to list