Refactor: libstonithd: Query stonith devices more clearly
API: libcrmcommon: Deprecate numXpathResults()
API: libcrmcommon: Deprecate getXpathResult()
Refactor: libcrmcommon: Make xml_element_type_text() library-private
Fix: libcib: Don't match element based on XPath matching an attribute
Refactor: libcrmcommon: New pcmk__xpath_result()
Refactor: various: Drop internal calls to freeXpathObject()
Refactor: libcrmcommon: Remove level of nesting in pcmk__check_acl()
API: libcrmcommon: Deprecate freeXpathObject()
Refactor: libcrmcommon: Limit parent scope in pcmk__check_acl()
Refactor: libcrmcommon: Reduce duplication in pcmk__check_acl()
Refactor: libcrmcommon: Improve argument name in pcmk__check_acl()
Refactor: libcrmcommon: Limit scope of xpath in pcmk__check_acl()
Refactor: libcib: Skip dedupXpathResults() when there are no results
Refactor: libcib: Some best practices in cib_process_xpath()
Refactor: libcib: Drop dedupXpathResults() internally
API: libcrmcommon: Deprecate dedupXpathResults()
Refactor: libcrmcommon: Ensure pcmk__xpath_num_results returns >= 0
Refactor: various: NULL-check pcmk__xpath_result() return value
Merge pull request #3843 from nrwahl2/nrwahl2-refactors
compress: use lzo1x_decompress_safe
Merge pull request #437 from kronosnet/lzo2_safe
compress: use lzo1x_decompress_safe
tx: Remove log message about adding header
tx: Initialize datafd_hdr
transport: Fix writev_all
Merge pull request #436 from jfriesse/fix_writev_all
compress: use lzo1x_decompress_safe
Seems to be closed by b93f0245 and a1d94f7a, both from Aleksei Burlakov.
Fix: libcrmcommon: provide a description for pcmk_rc_no_dc return code
Merge pull request #3848 from gao-yan/pcmk_rc_no_dc-desc
@waltdisgrace Adding a mainloop timer here is definitely the way to go. If you haven't looked at the mainloop stuff before (especially glib's implementation and what we've built on top of it), this could be a little bit confusing. The basic idea is that we fake being multithreaded by looping over a queue of events that can come from various sources like file or network IO, UNIX signals, periodic or one-off timers, and so forth. Using the main loop allows us to avoid blocking other work from happening.
@waltdisgrace Start by adding a unit test to verify that the pacemaker library still just segfaults on that input. I think would be as good a place as any for this, but @nrwahl2 might have a better suggestion. I can then help you make sense of the segfault and we can figure out where to throw an error.
Additionally, it would be nice to have a unit test or two for this function. Most of what it does is call another function, several of which are already unit tested, but checking that the inputs/outputs are as expected would be good.
Refactor: tools: Drop unused scheduler arg from cli_resource_search()
Refactor: tools: Improve crm_resource.c:validate_cmdline_config()
Refactor: tools: Drop redundant scheduler arg from cli_resource_execute
Refactor: tools: Drop options.cmdline_config in crm_resource.c
Refactor: tools: Drop redundant scheduler arg from cli_resource_delete()
Refactor: tools: Drop redundant scheduler arg from cli_resource_print()
Refactor: tools: Drop redundant scheduler arg from cli_resource_move()
Refactor: tools: Take pcmk_resource_t in send_lrm_rsc_op()
Refactor: tools: Take pcmk_resource_t in cli_resource_fail()
Refactor: tools: Drop redundant scheduler arg from cli_resource_fail()
Refactor: tools: Drop redundant scheduler arg from clear_rsc_history()
Refactor: tools: Take pcmk_resource_t in clear_rsc_history()
Refactor: tools: Assert rsc != NULL in cli_resource_delete()
Refactor: tools: Drop redundant scheduler arg from send_lrm_rsc_op()
Refactor: tools: Drop crm_resource.c:compare_id()
Refactor: tools: Drop unneeded args to generate_resource_params()
Refactor: tools: Drop redundant scheduler arg from clear_rsc_failures()
Refactor: tools: Remove some nesting in cli_resource_search()
Refactor: tools: GList function for building crm_resource node info list
Doc: various: Drop doxygen structural commands
Low: tools: Dry-run crm_resource --fail if CIB_file is set
Refactor: tools: Defunctionize build_node_info_list()
Refactor: tools: Add a function table to crm_resource.c
Refactor: tools: New crm_rsc_cmd_info_t struct
Refactor: tools: New crm_rsc_find_match_basename flag
Refactor: tools: New crm_rsc_find_match_anon_basename flag
Refactor: tools: New crm_rsc_rejects_clone_instance flag
Refactor: tools: New crm_rsc_find_match_history flag
Refactor: tools: New crm_rsc_requires_cib flag
Refactor: tools: New crm_rsc_requires_scheduler flag
Refactor: tools: New crm_rsc_requires_node flag
Refactor: tools: New crm_rsc_requires_resource flag
Refactor: tools: New crm_rsc_requires_controller flag
Doc: tools: Add FIXME for crm_resource --force-* commands
Refactor: tools: Move crm_resource controller connection block
Refactor: tools: Drop is_cib_required() and is_scheduler_required()
Refactor: tools: Return crm_exit_t from crm_resource handler functions
Refactor: tools: Reorganize some crm_resource lookups and validation
Doc: tools: Drop Coverity suppressions from crm_resource.c
Low: tools: Use correct error code for command lookup failure
Refactor: tools: Make scheduler non-global in crm_resource.c
Doc: tools: Add FIXME for wait_till_stable in crm_resource_runtime.c
Refactor: tools: Take exit_code as crm_resource controller cb user_data
Refactor: tools: Make cib_conn non-global in crm_resource.c
Refactor: tools: Make controld_api non-global in crm_resource.c
Refactor: tools: De-indent a block within cli_resource_search()
Refactor: tools: Drop cmd_none from crm_resource.c
Merge pull request #3837 from nrwahl2/nrwahl2-crm_resource3
fence_ibm_vpc: refresh bearer-token in connect() if token data is
Merge pull request #618 from oalbrigt/fence_ibm_vpc-avoid-bearer-token-issues
Refactor: libcrmservice: New services__copy_result() function
Refactor: libcrmservice: Store systemd job path in svc_action_private_t
Fix: various: Correctly detect completion of systemd start/stop actions
Refactor: libcrmservice: Subscribe to systemd D-Bus signals
Merge pull request #3844 from clumens/dbus-systemd-2.1
Refactor: daemons: Unindent the goagain block in action_complete.
Refactor: libcrmservice: systemd_init should return a bool.
Low: libcrmservices: Don't leak msg if systemd_proxy is NULL.